diff --git a/.DS_Store b/.DS_Store index f384548..7b329ed 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.mpl-cache/fontlist-v3.11.0.json b/.mpl-cache/fontlist-v3.11.0.json new file mode 100644 index 0000000..8f12f96 --- /dev/null +++ b/.mpl-cache/fontlist-v3.11.0.json @@ -0,0 +1,21882 @@ +{ + "_version": "3.11.0", + "_FontManager__default_weight": "normal", + "default_size": null, + "defaultFamily": { + "ttf": "DejaVu Sans", + "afm": "Helvetica" + }, + "afmlist": [ + { + "fname": "fonts/afm/putri8a.afm", + "index": 0, + "name": "Utopia", + "style": "italic", + "variant": "normal", + "weight": "regular", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Times-BoldItalic.afm", + "index": 0, + "name": "Times", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/cmtt10.afm", + "index": 0, + "name": "Computer Modern", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvr8an.afm", + "index": 0, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pbkd8a.afm", + "index": 0, + "name": "ITC Bookman", + "style": "normal", + "variant": "normal", + "weight": "demi", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pncb8a.afm", + "index": 0, + "name": "New Century Schoolbook", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pplb8a.afm", + "index": 0, + "name": "Palatino", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Helvetica-Bold.afm", + "index": 0, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Times-Italic.afm", + "index": 0, + "name": "Times", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pcrb8a.afm", + "index": 0, + "name": "Courier", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pplbi8a.afm", + "index": 0, + "name": "Palatino", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pncri8a.afm", + "index": 0, + "name": "New Century Schoolbook", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pagdo8a.afm", + "index": 0, + "name": "ITC Avant Garde Gothic", + "style": "italic", + "variant": "normal", + "weight": "demi", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pzcmi8a.afm", + "index": 0, + "name": "ITC Zapf Chancery", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Courier-Oblique.afm", + "index": 0, + "name": "Courier", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvb8a.afm", + "index": 0, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Helvetica.afm", + "index": 0, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pcrro8a.afm", + "index": 0, + "name": "Courier", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/ptmr8a.afm", + "index": 0, + "name": "Times", + "style": "normal", + "variant": "normal", + "weight": "roman", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/ptmri8a.afm", + "index": 0, + "name": "Times", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/psyr.afm", + "index": 0, + "name": "Symbol", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/cmti10.afm", + "index": 0, + "name": "cmti10", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/putb8a.afm", + "index": 0, + "name": "Utopia", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvro8an.afm", + "index": 0, + "name": "Helvetica", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pzdr.afm", + "index": 0, + "name": "ITC Zapf Dingbats", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pcrr8a.afm", + "index": 0, + "name": "Courier", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/cmmi10.afm", + "index": 0, + "name": "Computer Modern", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pncbi8a.afm", + "index": 0, + "name": "New Century Schoolbook", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Courier.afm", + "index": 0, + "name": "Courier", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/cmsy10.afm", + "index": 0, + "name": "Computer Modern", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvl8a.afm", + "index": 0, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": "light", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvbo8a.afm", + "index": 0, + "name": "Helvetica", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pncr8a.afm", + "index": 0, + "name": "New Century Schoolbook", + "style": "normal", + "variant": "normal", + "weight": "roman", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pagd8a.afm", + "index": 0, + "name": "ITC Avant Garde Gothic", + "style": "normal", + "variant": "normal", + "weight": "demi", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pbkdi8a.afm", + "index": 0, + "name": "ITC Bookman", + "style": "italic", + "variant": "normal", + "weight": "demi", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pbkl8a.afm", + "index": 0, + "name": "ITC Bookman", + "style": "normal", + "variant": "normal", + "weight": "light", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Times-Bold.afm", + "index": 0, + "name": "Times", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pplr8a.afm", + "index": 0, + "name": "Palatino", + "style": "normal", + "variant": "normal", + "weight": "roman", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Courier-BoldOblique.afm", + "index": 0, + "name": "Courier", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvbo8an.afm", + "index": 0, + "name": "Helvetica", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pagk8a.afm", + "index": 0, + "name": "ITC Avant Garde Gothic", + "style": "normal", + "variant": "normal", + "weight": "book", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/ptmb8a.afm", + "index": 0, + "name": "Times", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Helvetica-Oblique.afm", + "index": 0, + "name": "Helvetica", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pagko8a.afm", + "index": 0, + "name": "ITC Avant Garde Gothic", + "style": "italic", + "variant": "normal", + "weight": "book", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvlo8a.afm", + "index": 0, + "name": "Helvetica", + "style": "italic", + "variant": "normal", + "weight": "light", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Helvetica-BoldOblique.afm", + "index": 0, + "name": "Helvetica", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Symbol.afm", + "index": 0, + "name": "Symbol", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvro8a.afm", + "index": 0, + "name": "Helvetica", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/cmex10.afm", + "index": 0, + "name": "Computer Modern", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvr8a.afm", + "index": 0, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Times-Roman.afm", + "index": 0, + "name": "Times", + "style": "normal", + "variant": "normal", + "weight": "roman", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/ZapfDingbats.afm", + "index": 0, + "name": "ZapfDingbats", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/putbi8a.afm", + "index": 0, + "name": "Utopia", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/cmr10.afm", + "index": 0, + "name": "Computer Modern", + "style": "normal", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/putr8a.afm", + "index": 0, + "name": "Utopia", + "style": "normal", + "variant": "normal", + "weight": "regular", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pbkli8a.afm", + "index": 0, + "name": "ITC Bookman", + "style": "italic", + "variant": "normal", + "weight": "light", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/pdfcorefonts/Courier-Bold.afm", + "index": 0, + "name": "Courier", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pcrbo8a.afm", + "index": 0, + "name": "Courier", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/ptmbi8a.afm", + "index": 0, + "name": "Times", + "style": "italic", + "variant": "normal", + "weight": "bold", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/phvb8an.afm", + "index": 0, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": "bold", + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/afm/pplri8a.afm", + "index": 0, + "name": "Palatino", + "style": "italic", + "variant": "normal", + "weight": "medium", + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + } + ], + "ttflist": [ + { + "fname": "fonts/ttf/cmr10.ttf", + "index": 0, + "name": "cmr10", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSansMono-Bold.ttf", + "index": 0, + "name": "DejaVu Sans Mono", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/cmb10.ttf", + "index": 0, + "name": "cmb10", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXGeneralBol.ttf", + "index": 0, + "name": "STIXGeneral", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXNonUni.ttf", + "index": 0, + "name": "STIXNonUnicode", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizFourSymReg.ttf", + "index": 0, + "name": "STIXSizeFourSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizThreeSymBol.ttf", + "index": 0, + "name": "STIXSizeThreeSym", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSerif-Italic.ttf", + "index": 0, + "name": "DejaVu Serif", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizThreeSymReg.ttf", + "index": 0, + "name": "STIXSizeThreeSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/cmex10.ttf", + "index": 0, + "name": "cmex10", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizTwoSymReg.ttf", + "index": 0, + "name": "STIXSizeTwoSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSansMono-Oblique.ttf", + "index": 0, + "name": "DejaVu Sans Mono", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSansMono.ttf", + "index": 0, + "name": "DejaVu Sans Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXNonUniBol.ttf", + "index": 0, + "name": "STIXNonUnicode", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizFiveSymReg.ttf", + "index": 0, + "name": "STIXSizeFiveSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSansMono-BoldOblique.ttf", + "index": 0, + "name": "DejaVu Sans Mono", + "style": "oblique", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizTwoSymBol.ttf", + "index": 0, + "name": "STIXSizeTwoSym", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXGeneral.ttf", + "index": 0, + "name": "STIXGeneral", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizFourSymBol.ttf", + "index": 0, + "name": "STIXSizeFourSym", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/cmsy10.ttf", + "index": 0, + "name": "cmsy10", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/LastResortHE-Regular.ttf", + "index": 0, + "name": "Last Resort High-Efficiency", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSans-BoldOblique.ttf", + "index": 0, + "name": "DejaVu Sans", + "style": "oblique", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXNonUniIta.ttf", + "index": 0, + "name": "STIXNonUnicode", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXGeneralItalic.ttf", + "index": 0, + "name": "STIXGeneral", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXGeneralBolIta.ttf", + "index": 0, + "name": "STIXGeneral", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizOneSymReg.ttf", + "index": 0, + "name": "STIXSizeOneSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSansDisplay.ttf", + "index": 0, + "name": "DejaVu Sans Display", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSerifDisplay.ttf", + "index": 0, + "name": "DejaVu Serif Display", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/cmti10.ttf", + "index": 0, + "name": "cmti10", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSans-Bold.ttf", + "index": 0, + "name": "DejaVu Sans", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXSizOneSymBol.ttf", + "index": 0, + "name": "STIXSizeOneSym", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSerif.ttf", + "index": 0, + "name": "DejaVu Serif", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/cmtt10.ttf", + "index": 0, + "name": "cmtt10", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSans-Oblique.ttf", + "index": 0, + "name": "DejaVu Sans", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSerif-Bold.ttf", + "index": 0, + "name": "DejaVu Serif", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSerif-BoldItalic.ttf", + "index": 0, + "name": "DejaVu Serif", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/cmss10.ttf", + "index": 0, + "name": "cmss10", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/cmmi10.ttf", + "index": 0, + "name": "cmmi10", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/DejaVuSans.ttf", + "index": 0, + "name": "DejaVu Sans", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "fonts/ttf/STIXNonUniBolIta.ttf", + "index": 0, + "name": "STIXNonUnicode", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Georgia Bold.ttf", + "index": 0, + "name": "Georgia", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Shree714.ttc", + "index": 0, + "name": "Shree Devanagari 714", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Shree714.ttc", + "index": 1, + "name": "Shree Devanagari 714", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Shree714.ttc", + "index": 2, + "name": "Shree Devanagari 714", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Shree714.ttc", + "index": 3, + "name": "Shree Devanagari 714", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Italic.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Italic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansLepcha-Regular.ttf", + "index": 0, + "name": "Noto Sans Lepcha", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Narrow Italic.ttf", + "index": 0, + "name": "Arial Narrow", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Myanmar Sangam MN.ttc", + "index": 0, + "name": "Myanmar Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Myanmar Sangam MN.ttc", + "index": 1, + "name": "Myanmar Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizThreeSymBol.otf", + "index": 0, + "name": "STIXSizeThreeSym", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Georgia.ttf", + "index": 0, + "name": "Georgia", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/WenJinMinchoP3-Regular.ttf", + "index": 0, + "name": "WenJin Mincho Plane 3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/22656331beb61633e057fa20aa73b3bd117707f9.asset/AssetData/BMHanna11yrs-Regular.otf", + "index": 0, + "name": "BM Hanna 11yrs Old", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/22656331beb61633e057fa20aa73b3bd117707f9.asset/AssetData/BMHanna11yrs-Regular.otf", + "index": 0, + "name": "BM HANNA 11yrs old OTF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideBold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideBold.otf", + "index": 0, + "name": "Monaspace Argon Wide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 0, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 0, + "name": "Noto Sans Kannada Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 1, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 1, + "name": "Noto Sans Kannada ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 2, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 2, + "name": "Noto Sans Kannada Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 3, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 4, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 4, + "name": "Noto Sans Kannada Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 5, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 5, + "name": "Noto Sans Kannada SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 6, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 7, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 7, + "name": "Noto Sans Kannada ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 8, + "name": "Noto Sans Kannada", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansKannada.ttc", + "index": 8, + "name": "Noto Sans Kannada Black", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSharada-Regular.ttf", + "index": 0, + "name": "Noto Sans Sharada", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 0, + "name": "Helvetica Neue", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 1, + "name": "Helvetica Neue", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 2, + "name": "Helvetica Neue", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 3, + "name": "Helvetica Neue", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 4, + "name": "Helvetica Neue", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 5, + "name": "Helvetica Neue", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 6, + "name": "Helvetica Neue", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 7, + "name": "Helvetica Neue", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 8, + "name": "Helvetica Neue", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 9, + "name": "Helvetica Neue", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 10, + "name": "Helvetica Neue", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 11, + "name": "Helvetica Neue", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 12, + "name": "Helvetica Neue", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/HelveticaNeue.ttc", + "index": 13, + "name": "Helvetica Neue", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansNKo-Regular.ttf", + "index": 0, + "name": "Noto Sans NKo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Oriya Sangam MN.ttc", + "index": 0, + "name": "Oriya Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Oriya Sangam MN.ttc", + "index": 1, + "name": "Oriya Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Argon SemiWide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AlBayan.ttc", + "index": 0, + "name": "Al Bayan", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AlBayan.ttc", + "index": 1, + "name": ".Al Bayan PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AlBayan.ttc", + "index": 2, + "name": "Al Bayan", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AlBayan.ttc", + "index": 3, + "name": ".Al Bayan PUA", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansHanunoo-Regular.ttf", + "index": 0, + "name": "Noto Sans Hanunoo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-Bold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Trattatello.ttf", + "index": 0, + "name": "Trattatello", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-Medium.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-Medium.otf", + "index": 0, + "name": "Monaspace Neon Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Light.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Light.ttf", + "index": 0, + "name": "JetBrainsMono NFP Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Light.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXGeneralItalic.otf", + "index": 0, + "name": "STIXGeneral", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Mishafi Gold.ttf", + "index": 0, + "name": "Mishafi Gold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Radon Wide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Verdana.ttf", + "index": 0, + "name": "Verdana", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Thin.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Thin.ttf", + "index": 0, + "name": "JetBrainsMono NFM Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Thin.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFontPropo-Bold.ttf", + "index": 0, + "name": "GoMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton Wide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u4e38\u30b3\u3099 ProN W4.ttc", + "index": 0, + "name": "Hiragino Maru Gothic Pro", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u4e38\u30b3\u3099 ProN W4.ttc", + "index": 0, + "name": "Hiragino Maru Gothic Pro W4", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u4e38\u30b3\u3099 ProN W4.ttc", + "index": 1, + "name": "Hiragino Maru Gothic ProN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u4e38\u30b3\u3099 ProN W4.ttc", + "index": 1, + "name": "Hiragino Maru Gothic ProN W4", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideItalic.otf", + "index": 0, + "name": "Monaspace Xenon Wide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansLinearB-Regular.ttf", + "index": 0, + "name": "Noto Sans Linear B", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono NF ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/DIN Alternate Bold.ttf", + "index": 0, + "name": "DIN Alternate", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-105-Heavy.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-105-Heavy.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 105 Heavy", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 0, + "name": "Mukta Mahee", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 0, + "name": "MuktaMahee Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 1, + "name": "Mukta Mahee", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 1, + "name": "MuktaMahee SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 2, + "name": "Mukta Mahee", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 2, + "name": "MuktaMahee Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 3, + "name": "Mukta Mahee", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 3, + "name": "MuktaMahee Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 4, + "name": "Mukta Mahee", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 4, + "name": "MuktaMahee ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 5, + "name": "Mukta Mahee", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 5, + "name": "MuktaMahee ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 6, + "name": "Mukta Mahee", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MuktaMahee.ttc", + "index": 6, + "name": "MuktaMahee Bold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXNonUniBolIta.otf", + "index": 0, + "name": "STIXNonUnicode", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-Bold.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/1b6b2f148cdf17dd0d788706c83c61ca1998c3a6.asset/AssetData/STFANGSO.ttf", + "index": 0, + "name": "STFangsong", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Neon SemiWide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Georgia Bold Italic.ttf", + "index": 0, + "name": "Georgia", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-Light.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-Light.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 0, + "name": "PingFang HK", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 1, + "name": "PingFang MO", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 2, + "name": "PingFang TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 3, + "name": "PingFang SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 4, + "name": "PingFang HK", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 5, + "name": "PingFang MO", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 6, + "name": "PingFang TC", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 7, + "name": "PingFang SC", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 8, + "name": "PingFang HK", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 9, + "name": "PingFang MO", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 10, + "name": "PingFang TC", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 11, + "name": "PingFang SC", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 12, + "name": "PingFang HK", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 13, + "name": "PingFang MO", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 14, + "name": "PingFang TC", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 15, + "name": "PingFang SC", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 16, + "name": "PingFang HK", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 17, + "name": "PingFang MO", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 18, + "name": "PingFang TC", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 19, + "name": "PingFang SC", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 20, + "name": "PingFang HK", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 21, + "name": "PingFang MO", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 22, + "name": "PingFang TC", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/86ba2c91f017a3749571a82f2c6d890ac7ffb2fb.asset/AssetData/PingFang.ttc", + "index": 23, + "name": "PingFang SC", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Krypton Wide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a304e3396d019087ab67af77f5e398977529007d.asset/AssetData/Libian.ttc", + "index": 0, + "name": "Libian SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a304e3396d019087ab67af77f5e398977529007d.asset/AssetData/Libian.ttc", + "index": 1, + "name": "Libian TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-Medium.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-Medium.otf", + "index": 0, + "name": "Monaspace Argon Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansBhaiksuki-Regular.ttf", + "index": 0, + "name": "Noto Sans Bhaiksuki", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntUpSmReg.otf", + "index": 0, + "name": "STIXIntegralsUpSm", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-MediumItalic.otf", + "index": 0, + "name": "Victor Mono", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-MediumItalic.otf", + "index": 0, + "name": "Victor Mono Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Library/Fonts/Artifakt Element Regular.ttf", + "index": 0, + "name": "Artifakt Element", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 0, + "name": "Avenir Next", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 1, + "name": "Avenir Next", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 2, + "name": "Avenir Next", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 2, + "name": "Avenir Next Demi Bold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 3, + "name": "Avenir Next", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 3, + "name": "Avenir Next Demi Bold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 4, + "name": "Avenir Next", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 5, + "name": "Avenir Next", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 5, + "name": "Avenir Next Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 6, + "name": "Avenir Next", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 6, + "name": "Avenir Next Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 7, + "name": "Avenir Next", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 8, + "name": "Avenir Next", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 8, + "name": "Avenir Next Heavy", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 9, + "name": "Avenir Next", + "style": "italic", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 9, + "name": "Avenir Next Heavy", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 10, + "name": "Avenir Next", + "style": "normal", + "variant": "normal", + "weight": 275, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 10, + "name": "Avenir Next Ultra Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 11, + "name": "Avenir Next", + "style": "italic", + "variant": "normal", + "weight": 275, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next.ttc", + "index": 11, + "name": "Avenir Next Ultra Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-LightOblique.otf", + "index": 0, + "name": "Victor Mono", + "style": "oblique", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-LightOblique.otf", + "index": 0, + "name": "Victor Mono Light", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4a418d1fa4860652a3241e8ee457806c8557fc64.asset/AssetData/Yuanti.ttc", + "index": 0, + "name": "Yuanti SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4a418d1fa4860652a3241e8ee457806c8557fc64.asset/AssetData/Yuanti.ttc", + "index": 1, + "name": "Yuanti TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4a418d1fa4860652a3241e8ee457806c8557fc64.asset/AssetData/Yuanti.ttc", + "index": 2, + "name": "Yuanti SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4a418d1fa4860652a3241e8ee457806c8557fc64.asset/AssetData/Yuanti.ttc", + "index": 3, + "name": "Yuanti TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4a418d1fa4860652a3241e8ee457806c8557fc64.asset/AssetData/Yuanti.ttc", + "index": 4, + "name": "Yuanti SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4a418d1fa4860652a3241e8ee457806c8557fc64.asset/AssetData/Yuanti.ttc", + "index": 5, + "name": "Yuanti TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXNonUni.otf", + "index": 0, + "name": "STIXNonUnicode", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSundanese-Regular.ttf", + "index": 0, + "name": "Noto Sans Sundanese", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFNS.ttf", + "index": 0, + "name": "System Font", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 0, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 0, + "name": "Noto Sans Myanmar Blk", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 1, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 2, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 2, + "name": "Noto Sans Myanmar ExtBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 3, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 3, + "name": "Noto Sans Myanmar ExtLt", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 4, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 4, + "name": "Noto Sans Myanmar Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 5, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 5, + "name": "Noto Sans Myanmar Med", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 6, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 7, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 7, + "name": "Noto Sans Myanmar SemBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 8, + "name": "Noto Sans Myanmar", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 8, + "name": "Noto Sans Myanmar Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 9, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 9, + "name": "Noto Sans Zawgyi Blk", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 10, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 11, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 11, + "name": "Noto Sans Zawgyi ExtBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 12, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 12, + "name": "Noto Sans Zawgyi ExtLt", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 13, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 13, + "name": "Noto Sans Zawgyi Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 14, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 14, + "name": "Noto Sans Zawgyi Med", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 15, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 16, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 16, + "name": "Noto Sans Zawgyi SemBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 17, + "name": "Noto Sans Zawgyi", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansMyanmar.ttc", + "index": 17, + "name": "Noto Sans Zawgyi Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/bde53ad6e1bb82eb008445d7ed26d067e4c89497.asset/AssetData/LingWaiTC-Medium.otf", + "index": 0, + "name": "LingWai TC", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W5.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W5.ttc", + "index": 0, + "name": "Hiragino Sans W5", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W5.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Verdana Bold.ttf", + "index": 0, + "name": "Verdana", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMandaic-Regular.ttf", + "index": 0, + "name": "Noto Sans Mandaic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansPhagsPa-Regular.ttf", + "index": 0, + "name": "Noto Sans PhagsPa", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/37b7a41df590ab4ef2d6826c6ec7c69f0fd7379f.asset/AssetData/OsakaMono.ttf", + "index": 0, + "name": "Osaka", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/ecb0f9fe84d4cf732f739bbc2c6a8c29cfefd08e.asset/AssetData/AppleLiGothic-Medium.ttf", + "index": 0, + "name": "Apple LiGothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Times New Roman Bold Italic.ttf", + "index": 0, + "name": "Times New Roman", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Argon Wide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-Regular.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFCompactItalic.ttf", + "index": 0, + "name": ".SF Compact", + "style": "italic", + "variant": "normal", + "weight": 1000, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Neon Wide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Muna.ttc", + "index": 0, + "name": "Muna", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Muna.ttc", + "index": 1, + "name": ".Muna PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Muna.ttc", + "index": 2, + "name": "Muna", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Muna.ttc", + "index": 3, + "name": ".Muna PUA", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Muna.ttc", + "index": 4, + "name": "Muna", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Muna.ttc", + "index": 5, + "name": ".Muna PUA", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Narrow Bold.ttf", + "index": 0, + "name": "Arial Narrow", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-Medium.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-Medium.otf", + "index": 0, + "name": "Monaspace Krypton Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFArabic.ttf", + "index": 0, + "name": ".SF Arabic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFont-Regular.ttf", + "index": 0, + "name": "GoMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Khmer Sangam MN.ttf", + "index": 0, + "name": "Khmer Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Bold.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Bold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-BoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansTaiViet-Regular.ttf", + "index": 0, + "name": "Noto Sans Tai Viet", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/00bfc46ccb002b730e29def5116e0a571fb617d8.asset/AssetData/Hannotate.ttc", + "index": 0, + "name": "Hannotate SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/00bfc46ccb002b730e29def5116e0a571fb617d8.asset/AssetData/Hannotate.ttc", + "index": 1, + "name": "Hannotate TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/00bfc46ccb002b730e29def5116e0a571fb617d8.asset/AssetData/Hannotate.ttc", + "index": 2, + "name": "Hannotate SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/00bfc46ccb002b730e29def5116e0a571fb617d8.asset/AssetData/Hannotate.ttc", + "index": 3, + "name": "Hannotate TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Corsiva.ttc", + "index": 0, + "name": "Corsiva Hebrew", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Corsiva.ttc", + "index": 1, + "name": "Corsiva Hebrew", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSiddham-Regular.otf", + "index": 0, + "name": "Noto Sans Siddham", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 0, + "name": ".CJK Symbols Fallback HK", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 1, + "name": ".CJK Symbols Fallback JA", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 2, + "name": ".CJK Symbols Fallback MO", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 3, + "name": ".CJK Symbols Fallback SC", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 4, + "name": ".CJK Symbols Fallback TC", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 5, + "name": ".CJK Symbols Fallback Watch HK", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 6, + "name": ".CJK Symbols Fallback Watch JA", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 7, + "name": ".CJK Symbols Fallback Watch MO", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 8, + "name": ".CJK Symbols Fallback Watch SC", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/CJKSymbolsFallback.ttc", + "index": 9, + "name": ".CJK Symbols Fallback Watch TC", + "style": "normal", + "variant": "normal", + "weight": 542, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/60484a5d6f3fa8d51dcbeff43b7e70c9d42bcd2f.asset/AssetData/TsukushiBMaruGothic.ttc", + "index": 0, + "name": "Tsukushi B Round Gothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/60484a5d6f3fa8d51dcbeff43b7e70c9d42bcd2f.asset/AssetData/TsukushiBMaruGothic.ttc", + "index": 0, + "name": "Tsukushi B Round Gothic Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/60484a5d6f3fa8d51dcbeff43b7e70c9d42bcd2f.asset/AssetData/TsukushiBMaruGothic.ttc", + "index": 1, + "name": "Tsukushi B Round Gothic", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/60484a5d6f3fa8d51dcbeff43b7e70c9d42bcd2f.asset/AssetData/TsukushiBMaruGothic.ttc", + "index": 1, + "name": "Tsukushi B Round Gothic Bold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-BoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Microsoft Sans Serif.ttf", + "index": 0, + "name": "Microsoft Sans Serif", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXTwoText.ttf", + "index": 0, + "name": "STIX Two Text", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMeroitic-Regular.ttf", + "index": 0, + "name": "Noto Sans Meroitic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Radon SemiWide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Apple Braille.ttf", + "index": 0, + "name": "Apple Braille", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-Medium.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-Medium.otf", + "index": 0, + "name": "Monaspace Xenon Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXVarBol.otf", + "index": 0, + "name": "STIXVariants", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Library/Fonts/Artifakt Element Italic.ttf", + "index": 0, + "name": "Artifakt Element", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bodoni 72 Smallcaps Book.ttf", + "index": 0, + "name": "Bodoni 72 Smallcaps", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideLight.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideLight.otf", + "index": 0, + "name": "Monaspace Neon Wide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Chalkduster.ttf", + "index": 0, + "name": "Chalkduster", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Mishafi.ttf", + "index": 0, + "name": "Mishafi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Sana.ttc", + "index": 0, + "name": "Sana", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Sana.ttc", + "index": 1, + "name": ".Sana PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Helvetica.ttc", + "index": 0, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Helvetica.ttc", + "index": 1, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Helvetica.ttc", + "index": 2, + "name": "Helvetica", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Helvetica.ttc", + "index": 3, + "name": "Helvetica", + "style": "oblique", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Helvetica.ttc", + "index": 4, + "name": "Helvetica", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Helvetica.ttc", + "index": 5, + "name": "Helvetica", + "style": "oblique", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-ExtraLight.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-ExtraLight.otf", + "index": 0, + "name": "Monaspace Radon ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bangla MN.ttc", + "index": 0, + "name": "Bangla MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bangla MN.ttc", + "index": 1, + "name": "Bangla MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/3d0af21c67c597a49a25214ff4c70179baf6f3ca.asset/AssetData/BMHannaPro-Regular.otf", + "index": 0, + "name": "BM Hanna Pro", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/3d0af21c67c597a49a25214ff4c70179baf6f3ca.asset/AssetData/BMHannaPro-Regular.otf", + "index": 0, + "name": "BM HANNA Pro OTF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W3.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W3.ttc", + "index": 0, + "name": "Hiragino Sans W3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W3.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W3.ttc", + "index": 2, + "name": "Hiragino Kaku Gothic ProN", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W3.ttc", + "index": 2, + "name": "Hiragino Kaku Gothic ProN W3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W3.ttc", + "index": 3, + "name": "Hiragino Kaku Gothic Pro", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W3.ttc", + "index": 3, + "name": "Hiragino Kaku Gothic Pro W3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-SemiBold.ttf", + "index": 0, + "name": "FiraCode Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-SemiBold.ttf", + "index": 0, + "name": "FiraCode Nerd Font SemBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ExtraLightItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "italic", + "variant": "normal", + "weight": 275, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ExtraLightItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansBassaVah-Regular.ttf", + "index": 0, + "name": "Noto Sans Bassa Vah", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-BoldOblique.otf", + "index": 0, + "name": "Victor Mono", + "style": "oblique", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-BoldOblique.otf", + "index": 0, + "name": "Victor Mono Oblique", + "style": "oblique", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 0, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 0, + "name": "Noto Serif Myanmar Blk", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 1, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 2, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 2, + "name": "Noto Serif Myanmar ExtBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 3, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 3, + "name": "Noto Serif Myanmar ExtLt", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 4, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 4, + "name": "Noto Serif Myanmar Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 5, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 5, + "name": "Noto Serif Myanmar Med", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 6, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 7, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 7, + "name": "Noto Serif Myanmar SemBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 8, + "name": "Noto Serif Myanmar", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSerifMyanmar.ttc", + "index": 8, + "name": "Noto Serif Myanmar Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-Medium.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-Medium.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono Med", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizTwoSymBol.otf", + "index": 0, + "name": "STIXSizeTwoSym", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/6331c5916c361af1b83fb8b8b76ef2eece20c8eb.asset/AssetData/Kai.ttf", + "index": 0, + "name": "Kai", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMongolian-Regular.ttf", + "index": 0, + "name": "Noto Sans Mongolian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFontPropo-BoldItalic.ttf", + "index": 0, + "name": "GoMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Gurmukhi Sangam MN.ttc", + "index": 0, + "name": "Gurmukhi Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Gurmukhi Sangam MN.ttc", + "index": 1, + "name": "Gurmukhi Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Diwan Kufi.ttc", + "index": 0, + "name": "Diwan Kufi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Diwan Kufi.ttc", + "index": 1, + "name": ".Diwan Kufi PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Regular.otf", + "index": 0, + "name": "Victor Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 0, + "name": "ITF Devanagari", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 1, + "name": "ITF Devanagari", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 2, + "name": "ITF Devanagari", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 3, + "name": "ITF Devanagari", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 4, + "name": "ITF Devanagari", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 5, + "name": "ITF Devanagari Marathi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 6, + "name": "ITF Devanagari Marathi", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 7, + "name": "ITF Devanagari Marathi", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 8, + "name": "ITF Devanagari Marathi", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ITFDevanagari.ttc", + "index": 9, + "name": "ITF Devanagari Marathi", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Gurmukhi.ttf", + "index": 0, + "name": "Gurmukhi MT", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-Light.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-Light.otf", + "index": 0, + "name": "Monaspace Krypton Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Luminari.ttf", + "index": 0, + "name": "Luminari", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-MediumOblique.otf", + "index": 0, + "name": "Victor Mono", + "style": "oblique", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-MediumOblique.otf", + "index": 0, + "name": "Victor Mono Medium", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/KefaIII.ttf", + "index": 0, + "name": "Kefa III", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-Medium.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-Medium.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo Med", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/2b7cea021df336d26a89f699c8469a51c721e9a2.asset/AssetData/Kyokasho.ttc", + "index": 0, + "name": "YuKyokasho Yoko", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/2b7cea021df336d26a89f699c8469a51c721e9a2.asset/AssetData/Kyokasho.ttc", + "index": 1, + "name": "YuKyokasho Yoko", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/2b7cea021df336d26a89f699c8469a51c721e9a2.asset/AssetData/Kyokasho.ttc", + "index": 2, + "name": "YuKyokasho", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/2b7cea021df336d26a89f699c8469a51c721e9a2.asset/AssetData/Kyokasho.ttc", + "index": 3, + "name": "YuKyokasho", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-ExtraBold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-ExtraBold.otf", + "index": 0, + "name": "Monaspace Argon ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizFourSymReg.otf", + "index": 0, + "name": "STIXSizeFourSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideBold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideBold.otf", + "index": 0, + "name": "Monaspace Neon Wide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansCham-Regular.ttf", + "index": 0, + "name": "Noto Sans Cham", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFNSMono.ttf", + "index": 0, + "name": ".SF NS Mono", + "style": "normal", + "variant": "normal", + "weight": 295, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansInscriptionalPahlavi-Regular.ttf", + "index": 0, + "name": "Noto Sans Inscriptional Pahlavi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansInscriptionalPahlavi-Regular.ttf", + "index": 0, + "name": "Noto Sans InsPahlavi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansAvestan-Regular.ttf", + "index": 0, + "name": "Noto Sans Avestan", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansHatran-Regular.ttf", + "index": 0, + "name": "Noto Sans Hatran", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansTifinagh-Regular.otf", + "index": 0, + "name": "Noto Sans Tifinagh", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Argon SemiWide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Neon SemiWide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFGeorgian.ttf", + "index": 0, + "name": ".SF Georgian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon Wide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Raanana.ttc", + "index": 0, + "name": "Raanana", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Raanana.ttc", + "index": 1, + "name": "Raanana", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Neon SemiWide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansCuneiform-Regular.ttf", + "index": 0, + "name": "Noto Sans Cuneiform", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Brush Script.ttf", + "index": 0, + "name": "Brush Script MT", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NewPeninimMT.ttc", + "index": 0, + "name": "New Peninim MT", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NewPeninimMT.ttc", + "index": 1, + "name": "New Peninim MT", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NewPeninimMT.ttc", + "index": 2, + "name": "New Peninim MT", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NewPeninimMT.ttc", + "index": 3, + "name": "New Peninim MT", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Cochin.ttc", + "index": 0, + "name": "Cochin", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Cochin.ttc", + "index": 1, + "name": "Cochin", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Cochin.ttc", + "index": 2, + "name": "Cochin", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Cochin.ttc", + "index": 3, + "name": "Cochin", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideMedium.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideMedium.otf", + "index": 0, + "name": "Monaspace Neon Wide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bodoni Ornaments.ttf", + "index": 0, + "name": "Bodoni Ornaments", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFGeorgianRounded.ttf", + "index": 0, + "name": ".SF Georgian Rounded", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Thin.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Thin.ttf", + "index": 0, + "name": "JetBrainsMono NF Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Thin.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Neon SemiWide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/78f88149335340bffebcfade41e6a326a865625c.asset/AssetData/LingWaiSC-Medium.otf", + "index": 0, + "name": "LingWai SC", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansNagMundari-Regular.ttf", + "index": 0, + "name": "Noto Sans Nag Mundari", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansPahawhHmong-Regular.ttf", + "index": 0, + "name": "Noto Sans Pahawh Hmong", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFArabicRounded.ttf", + "index": 0, + "name": ".SF Arabic Rounded", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Hoefler Text Ornaments.ttf", + "index": 0, + "name": "Hoefler Text", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Hoefler Text Ornaments.ttf", + "index": 0, + "name": "Hoefler Text Ornaments", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/10e7a462a671950b802274fad767b566ff8457d1.asset/AssetData/STXIHEI.ttf", + "index": 0, + "name": "STHeiti", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizFourSymBol.otf", + "index": 0, + "name": "STIXSizeFourSym", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansOriya.ttc", + "index": 0, + "name": "Noto Sans Oriya", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansOriya.ttc", + "index": 1, + "name": "Noto Sans Oriya", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Unicode.ttf", + "index": 0, + "name": "Arial Unicode MS", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizOneSymBol.otf", + "index": 0, + "name": "STIXSizeOneSym", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Regular.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon SemiWide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansElbasan-Regular.ttf", + "index": 0, + "name": "Noto Sans Elbasan", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Phosphate.ttc", + "index": 0, + "name": "Phosphate", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Phosphate.ttc", + "index": 1, + "name": "Phosphate", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Argon ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Light.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Light.ttf", + "index": 0, + "name": "Maple Mono NF CN Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono NFP ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a7a90316a83e0693b3d971d89b235ee578c59f0c.asset/AssetData/BMYeongSung-Regular.otf", + "index": 0, + "name": "BM Yeonsung", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a7a90316a83e0693b3d971d89b235ee578c59f0c.asset/AssetData/BMYeongSung-Regular.otf", + "index": 0, + "name": "BM YEONSUNG OTF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizThreeSymReg.otf", + "index": 0, + "name": "STIXSizeThreeSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Regular.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Regular.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-LightItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-LightItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/zpix.ttf", + "index": 0, + "name": "Zpix", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Times.ttc", + "index": 0, + "name": "Times", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Times.ttc", + "index": 1, + "name": "Times", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Times.ttc", + "index": 2, + "name": "Times", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Times.ttc", + "index": 3, + "name": "Times", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansTirhuta-Regular.ttf", + "index": 0, + "name": "Noto Sans Tirhuta", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Futura.ttc", + "index": 0, + "name": "Futura", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Futura.ttc", + "index": 1, + "name": "Futura", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Futura.ttc", + "index": 2, + "name": "Futura", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Futura.ttc", + "index": 3, + "name": "Futura", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Futura.ttc", + "index": 4, + "name": "Futura", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Waseem.ttc", + "index": 0, + "name": "Waseem", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Waseem.ttc", + "index": 1, + "name": "Waseem", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansBamum-Regular.ttf", + "index": 0, + "name": "Noto Sans Bamum", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-Italic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Rockwell.ttc", + "index": 0, + "name": "Rockwell", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Rockwell.ttc", + "index": 1, + "name": "Rockwell", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Rockwell.ttc", + "index": 2, + "name": "Rockwell", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Rockwell.ttc", + "index": 3, + "name": "Rockwell", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Devanagari Sangam MN.ttc", + "index": 0, + "name": "Devanagari Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Devanagari Sangam MN.ttc", + "index": 1, + "name": "Devanagari Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideRegular.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideRegular.otf", + "index": 0, + "name": "Monaspace Xenon Wide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-65-Medium.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-65-Medium.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 65 Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-MediumItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-MediumItalic.otf", + "index": 0, + "name": "Monaspace Argon Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon Wide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-Retina.ttf", + "index": 0, + "name": "FiraCode Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 450, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-Retina.ttf", + "index": 0, + "name": "FiraCode Nerd Font Ret", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizTwoSymReg.otf", + "index": 0, + "name": "STIXSizeTwoSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-BoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansNewa-Regular.ttf", + "index": 0, + "name": "Noto Sans Newa", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon Wide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansBuhid-Regular.ttf", + "index": 0, + "name": "Noto Sans Buhid", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Italic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Italic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Black.ttf", + "index": 0, + "name": "Arial Black", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SukhumvitSet.ttc", + "index": 0, + "name": "Sukhumvit Set", + "style": "normal", + "variant": "normal", + "weight": 250, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SukhumvitSet.ttc", + "index": 1, + "name": "Sukhumvit Set", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SukhumvitSet.ttc", + "index": 2, + "name": "Sukhumvit Set", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SukhumvitSet.ttc", + "index": 3, + "name": "Sukhumvit Set", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SukhumvitSet.ttc", + "index": 4, + "name": "Sukhumvit Set", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SukhumvitSet.ttc", + "index": 5, + "name": "Sukhumvit Set", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-Regular.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Bold.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Bold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/9ea5dc040323daeddd09ec48cfe7c73fc3144368.asset/AssetData/Pilgiche.ttf", + "index": 0, + "name": "PilGi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Galvji.ttc", + "index": 0, + "name": "Galvji", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Galvji.ttc", + "index": 1, + "name": "Galvji", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Galvji.ttc", + "index": 2, + "name": "Galvji", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Galvji.ttc", + "index": 3, + "name": "Galvji", + "style": "oblique", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Radon Wide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansPhoenician-Regular.ttf", + "index": 0, + "name": "Noto Sans Phoenician", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon SemiWide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Times New Roman.ttf", + "index": 0, + "name": "Times New Roman", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton Wide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-MediumItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-MediumItalic.otf", + "index": 0, + "name": "Monaspace Xenon Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-Light.ttf", + "index": 0, + "name": "FiraCode Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-Light.ttf", + "index": 0, + "name": "FiraCode Nerd Font Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono NFP ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansRejang-Regular.ttf", + "index": 0, + "name": "Noto Sans Rejang", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/259e8f5a322e8dae602d51ac00aefb3d6b05c224.asset/AssetData/SimSong.ttc", + "index": 0, + "name": "SimSong", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/259e8f5a322e8dae602d51ac00aefb3d6b05c224.asset/AssetData/SimSong.ttc", + "index": 1, + "name": "SimSong", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono NFP SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Neon Wide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Regular.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Regular.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon Wide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/5d3a1229823fff781c0d9dac611c90f9fc31e138.asset/AssetData/LiHeiPro.ttf", + "index": 0, + "name": "LiHei Pro", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SnellRoundhand.ttc", + "index": 0, + "name": "Snell Roundhand", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SnellRoundhand.ttc", + "index": 1, + "name": "Snell Roundhand", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SnellRoundhand.ttc", + "index": 2, + "name": "Snell Roundhand", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSerifBalinese-Regular.ttf", + "index": 0, + "name": "Noto Serif Balinese", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/88d6cc32a907955efa1d014207889413890573be.asset/AssetData/Kaiti.ttc", + "index": 0, + "name": "Kaiti SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/88d6cc32a907955efa1d014207889413890573be.asset/AssetData/Kaiti.ttc", + "index": 1, + "name": "STKaiti", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/88d6cc32a907955efa1d014207889413890573be.asset/AssetData/Kaiti.ttc", + "index": 2, + "name": "Kaiti TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/88d6cc32a907955efa1d014207889413890573be.asset/AssetData/Kaiti.ttc", + "index": 3, + "name": "Kaiti SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/88d6cc32a907955efa1d014207889413890573be.asset/AssetData/Kaiti.ttc", + "index": 4, + "name": "Kaiti TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/88d6cc32a907955efa1d014207889413890573be.asset/AssetData/Kaiti.ttc", + "index": 5, + "name": "Kaiti SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/88d6cc32a907955efa1d014207889413890573be.asset/AssetData/Kaiti.ttc", + "index": 6, + "name": "Kaiti TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Farisi.ttf", + "index": 0, + "name": "Farisi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansTagbanwa-Regular.ttf", + "index": 0, + "name": "Noto Sans Tagbanwa", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton Wide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Bold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Bold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/GeezaPro.ttc", + "index": 0, + "name": "Geeza Pro", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/GeezaPro.ttc", + "index": 1, + "name": "Geeza Pro", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/GeezaPro.ttc", + "index": 2, + "name": ".Geeza Pro Interface", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/GeezaPro.ttc", + "index": 3, + "name": ".Geeza Pro Interface", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/GeezaPro.ttc", + "index": 4, + "name": ".Geeza Pro Interface", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/GeezaPro.ttc", + "index": 5, + "name": ".Geeza Pro PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/GeezaPro.ttc", + "index": 6, + "name": ".Geeza Pro PUA", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-Regular.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-Regular.ttf", + "index": 0, + "name": "FiraCode Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOsmanya-Regular.ttf", + "index": 0, + "name": "Noto Sans Osmanya", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Marion.ttc", + "index": 0, + "name": "Marion", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Marion.ttc", + "index": 1, + "name": "Marion", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Marion.ttc", + "index": 2, + "name": "Marion", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon Wide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-95-ExtraBold.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-95-ExtraBold.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 95 ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Medium.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Medium.ttf", + "index": 0, + "name": "JetBrainsMono NFP Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Medium.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/\u65b9\u6b63\u4eff\u5b8bGBK.ttf", + "index": 0, + "name": "FZFangSong-Z02", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansGlagolitic-Regular.ttf", + "index": 0, + "name": "Noto Sans Glagolitic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Apple Braille Pinpoint 6 Dot.ttf", + "index": 0, + "name": "Apple Braille", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF Thin", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansTaiTham-Regular.ttf", + "index": 0, + "name": "Noto Sans Tai Tham", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansKhudawadi-Regular.ttf", + "index": 0, + "name": "Noto Sans Khudawadi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorTelugu.ttc", + "index": 0, + "name": "Kohinoor Telugu", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorTelugu.ttc", + "index": 1, + "name": "Kohinoor Telugu", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorTelugu.ttc", + "index": 2, + "name": "Kohinoor Telugu", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorTelugu.ttc", + "index": 3, + "name": "Kohinoor Telugu", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorTelugu.ttc", + "index": 4, + "name": "Kohinoor Telugu", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon Wide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOsage-Regular.ttf", + "index": 0, + "name": "Noto Sans Osage", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Xenon Wide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Radon SemiWide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a0b5c0f3c1d41c4c52a33343496c9c65ad52c50.asset/AssetData/NanumGothic.ttc", + "index": 0, + "name": "Nanum Gothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a0b5c0f3c1d41c4c52a33343496c9c65ad52c50.asset/AssetData/NanumGothic.ttc", + "index": 0, + "name": "NanumGothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a0b5c0f3c1d41c4c52a33343496c9c65ad52c50.asset/AssetData/NanumGothic.ttc", + "index": 1, + "name": "Nanum Gothic", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a0b5c0f3c1d41c4c52a33343496c9c65ad52c50.asset/AssetData/NanumGothic.ttc", + "index": 1, + "name": "NanumGothic", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a0b5c0f3c1d41c4c52a33343496c9c65ad52c50.asset/AssetData/NanumGothic.ttc", + "index": 2, + "name": "Nanum Gothic", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a0b5c0f3c1d41c4c52a33343496c9c65ad52c50.asset/AssetData/NanumGothic.ttc", + "index": 2, + "name": "NanumGothic", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a0b5c0f3c1d41c4c52a33343496c9c65ad52c50.asset/AssetData/NanumGothic.ttc", + "index": 2, + "name": "NanumGothic ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ChalkboardSE.ttc", + "index": 0, + "name": "Chalkboard SE", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ChalkboardSE.ttc", + "index": 1, + "name": "Chalkboard SE", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/ChalkboardSE.ttc", + "index": 2, + "name": "Chalkboard SE", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 0, + "name": "Seravek", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 1, + "name": "Seravek", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 2, + "name": "Seravek", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 2, + "name": "Seravek Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 3, + "name": "Seravek", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 3, + "name": "Seravek Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 4, + "name": "Seravek", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 4, + "name": "Seravek Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 5, + "name": "Seravek", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 5, + "name": "Seravek Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 6, + "name": "Seravek", + "style": "italic", + "variant": "normal", + "weight": 250, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 6, + "name": "Seravek ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 7, + "name": "Seravek", + "style": "normal", + "variant": "normal", + "weight": 250, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 7, + "name": "Seravek ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 8, + "name": "Seravek", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Seravek.ttc", + "index": 9, + "name": "Seravek", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W1.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W1.ttc", + "index": 0, + "name": "Hiragino Sans W1", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W1.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Neon SemiWide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXTwoText-Italic.ttf", + "index": 0, + "name": "STIX Two Text", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Oblique.otf", + "index": 0, + "name": "Victor Mono", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Oblique.otf", + "index": 0, + "name": "Victor Mono Oblique", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Xenon Wide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Zapfino.ttf", + "index": 0, + "name": "Zapfino", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Italic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Italic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Neon SemiWide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Kannada MN.ttc", + "index": 0, + "name": "Kannada MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Kannada MN.ttc", + "index": 1, + "name": "Kannada MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-MediumItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-MediumItalic.otf", + "index": 0, + "name": "Monaspace Krypton Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansInscriptionalParthian-Regular.ttf", + "index": 0, + "name": "Noto Sans Inscriptional Parthian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansInscriptionalParthian-Regular.ttf", + "index": 0, + "name": "Noto Sans InsParthi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/Clear-Han-Serif.ttf", + "index": 0, + "name": "????", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/Clear-Han-Serif.ttf", + "index": 0, + "name": "Clear Han Serif", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Argon SemiWide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Thin.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "normal", + "variant": "normal", + "weight": 250, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Thin.ttf", + "index": 0, + "name": "Maple Mono NF CN Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideExtraLight.otf", + "index": 0, + "name": "Monaspace Argon Wide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-MediumItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-MediumItalic.otf", + "index": 0, + "name": "Monaspace Neon Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Argon SemiWide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideLight.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideLight.otf", + "index": 0, + "name": "Monaspace Xenon Wide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/b37171b0cb7d2044e39dd8001c23a0e540f91207.asset/AssetData/BMJua-Regular.otf", + "index": 0, + "name": "BM Jua", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/b37171b0cb7d2044e39dd8001c23a0e540f91207.asset/AssetData/BMJua-Regular.otf", + "index": 0, + "name": "BM JUA OTF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansVai-Regular.ttf", + "index": 0, + "name": "Noto Sans Vai", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Farah.ttc", + "index": 0, + "name": "Farah", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Farah.ttc", + "index": 1, + "name": ".Farah PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-ExtraBold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-ExtraBold.otf", + "index": 0, + "name": "Monaspace Xenon ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon Wide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-Bold.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Geneva.ttf", + "index": 0, + "name": "Geneva", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FangZhengHeiTiJianTi-1.ttf", + "index": 0, + "name": "FZHei-B01S", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Courier New Bold Italic.ttf", + "index": 0, + "name": "Courier New", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-Light.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-Light.otf", + "index": 0, + "name": "Monaspace Xenon Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM Thin", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon SemiWide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideRegular.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideRegular.otf", + "index": 0, + "name": "Monaspace Krypton Wide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansBatak-Regular.ttf", + "index": 0, + "name": "Noto Sans Batak", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansKhojki-Regular.ttf", + "index": 0, + "name": "Noto Sans Khojki", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Library/Fonts/Artifakt Element Bold.ttf", + "index": 0, + "name": "Artifakt Element", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Diwan Thuluth.ttf", + "index": 0, + "name": "Diwan Thuluth", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/13b8ce423f920875b28b551f9406bf1014e0a656.asset/AssetData/Xingkai.ttc", + "index": 0, + "name": "Xingkai SC", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/13b8ce423f920875b28b551f9406bf1014e0a656.asset/AssetData/Xingkai.ttc", + "index": 1, + "name": "Xingkai TC", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/13b8ce423f920875b28b551f9406bf1014e0a656.asset/AssetData/Xingkai.ttc", + "index": 2, + "name": "Xingkai SC", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/13b8ce423f920875b28b551f9406bf1014e0a656.asset/AssetData/Xingkai.ttc", + "index": 3, + "name": "Xingkai TC", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Keyboard.ttf", + "index": 0, + "name": ".Keyboard", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-ExtraBold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-ExtraBold.otf", + "index": 0, + "name": "Monaspace Neon ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Oriya MN.ttc", + "index": 0, + "name": "Oriya MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Oriya MN.ttc", + "index": 1, + "name": "Oriya MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideExtraLight.otf", + "index": 0, + "name": "Monaspace Radon SemiWide ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansPauCinHau-Regular.ttf", + "index": 0, + "name": "Noto Sans Pau Cin Hau", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansPauCinHau-Regular.ttf", + "index": 0, + "name": "Noto Sans PauCinHau", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4c932c71d74fc9e4c1bd9cbf270374b0b3ee7519.asset/AssetData/NanumMyeongjo.ttc", + "index": 0, + "name": "Nanum Myeongjo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4c932c71d74fc9e4c1bd9cbf270374b0b3ee7519.asset/AssetData/NanumMyeongjo.ttc", + "index": 0, + "name": "NanumMyeongjo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4c932c71d74fc9e4c1bd9cbf270374b0b3ee7519.asset/AssetData/NanumMyeongjo.ttc", + "index": 1, + "name": "Nanum Myeongjo", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4c932c71d74fc9e4c1bd9cbf270374b0b3ee7519.asset/AssetData/NanumMyeongjo.ttc", + "index": 1, + "name": "NanumMyeongjo", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4c932c71d74fc9e4c1bd9cbf270374b0b3ee7519.asset/AssetData/NanumMyeongjo.ttc", + "index": 2, + "name": "Nanum Myeongjo", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4c932c71d74fc9e4c1bd9cbf270374b0b3ee7519.asset/AssetData/NanumMyeongjo.ttc", + "index": 2, + "name": "NanumMyeongjo", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/4c932c71d74fc9e4c1bd9cbf270374b0b3ee7519.asset/AssetData/NanumMyeongjo.ttc", + "index": 2, + "name": "NanumMyeongjoExtraBold", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-ExtraLight.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-ExtraLight.otf", + "index": 0, + "name": "Monaspace Argon ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-55-Regular.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-55-Regular.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 55 Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Neon SemiWide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/\u4eff\u5b8b_GB2312.ttf", + "index": 0, + "name": "FangSong_GB2312", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Tahoma Bold.ttf", + "index": 0, + "name": "Tahoma", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansCaucasianAlbanian-Regular.ttf", + "index": 0, + "name": "Noto Sans Caucasian Albanian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansCaucasianAlbanian-Regular.ttf", + "index": 0, + "name": "Noto Sans CaucAlban", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansLisu-Regular.ttf", + "index": 0, + "name": "Noto Sans Lisu", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Kannada Sangam MN.ttc", + "index": 0, + "name": "Kannada Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Kannada Sangam MN.ttc", + "index": 1, + "name": "Kannada Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-SemiBoldOblique.otf", + "index": 0, + "name": "Victor Mono", + "style": "oblique", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-SemiBoldOblique.otf", + "index": 0, + "name": "Victor Mono SemiBold", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/36a81f2dad2ef266c50802d85839e0201fcf4e57.asset/AssetData/ToppanBunkyuMidashiMinchoStdN-ExtraBold.otf", + "index": 0, + "name": "Toppan Bunkyu Midashi Mincho", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/36a81f2dad2ef266c50802d85839e0201fcf4e57.asset/AssetData/ToppanBunkyuMidashiMinchoStdN-ExtraBold.otf", + "index": 0, + "name": "Toppan Bunkyu Midashi Mincho Extrabold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSaurashtra-Regular.ttf", + "index": 0, + "name": "Noto Sans Saurashtra", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-SemiBoldItalic.otf", + "index": 0, + "name": "Victor Mono", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-SemiBoldItalic.otf", + "index": 0, + "name": "Victor Mono SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFontMono-Regular.ttf", + "index": 0, + "name": "GoMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MarkerFelt.ttc", + "index": 0, + "name": "Marker Felt", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/MarkerFelt.ttc", + "index": 1, + "name": "Marker Felt", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFArmenianRounded.ttf", + "index": 0, + "name": ".SF Armenian Rounded", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansCarian-Regular.ttf", + "index": 0, + "name": "Noto Sans Carian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-Bold.ttf", + "index": 0, + "name": "FiraCode Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFont-Italic.ttf", + "index": 0, + "name": "GoMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-Regular.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFHebrew.ttf", + "index": 0, + "name": ".SF Hebrew", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideRegular.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideRegular.otf", + "index": 0, + "name": "Monaspace Radon Wide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansJavanese-Regular.otf", + "index": 0, + "name": "Noto Sans Javanese", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 0, + "name": "Iowan Old Style", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 1, + "name": "Iowan Old Style", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 2, + "name": "Iowan Old Style", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 3, + "name": "Iowan Old Style", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 4, + "name": "Iowan Old Style", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 4, + "name": "Iowan Old Style Black", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 5, + "name": "Iowan Old Style", + "style": "italic", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 5, + "name": "Iowan Old Style Black", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Iowan Old Style.ttc", + "index": 6, + "name": "Iowan Old Style", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Myanmar MN.ttc", + "index": 0, + "name": "Myanmar MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Myanmar MN.ttc", + "index": 1, + "name": "Myanmar MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Papyrus.ttc", + "index": 0, + "name": "Papyrus", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Papyrus.ttc", + "index": 1, + "name": "Papyrus", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Library/Fonts/Arial Unicode.ttf", + "index": 0, + "name": "Arial Unicode MS", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-ExtraBold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-ExtraBold.otf", + "index": 0, + "name": "Monaspace Radon ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Malayalam Sangam MN.ttc", + "index": 0, + "name": "Malayalam Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Malayalam Sangam MN.ttc", + "index": 1, + "name": "Malayalam Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/b3a305e67bac3daadc55e9b976b534261c038509.asset/AssetData/AppleLiSung-Light.ttf", + "index": 0, + "name": "Apple LiSung", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Charter.ttc", + "index": 0, + "name": "Charter", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Charter.ttc", + "index": 1, + "name": "Charter", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Charter.ttc", + "index": 2, + "name": "Charter", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Charter.ttc", + "index": 3, + "name": "Charter", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Charter.ttc", + "index": 4, + "name": "Charter", + "style": "italic", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Charter.ttc", + "index": 4, + "name": "Charter Black", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Charter.ttc", + "index": 5, + "name": "Charter", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Charter.ttc", + "index": 5, + "name": "Charter Black", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Light.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Light.ttf", + "index": 0, + "name": "JetBrainsMono NFM Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Light.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Al Nile.ttc", + "index": 0, + "name": "Al Nile", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Al Nile.ttc", + "index": 1, + "name": ".Al Nile PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Al Nile.ttc", + "index": 2, + "name": "Al Nile", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Al Nile.ttc", + "index": 3, + "name": ".Al Nile PUA", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansTakri-Regular.ttf", + "index": 0, + "name": "Noto Sans Takri", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W8.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W8.ttc", + "index": 0, + "name": "Hiragino Sans W8", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W8.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W8.ttc", + "index": 2, + "name": "Hiragino Kaku Gothic Std", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W8.ttc", + "index": 2, + "name": "Hiragino Kaku Gothic Std W8", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W8.ttc", + "index": 3, + "name": "Hiragino Kaku Gothic StdN", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W8.ttc", + "index": 3, + "name": "Hiragino Kaku Gothic StdN W8", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSerifCaption.ttc", + "index": 0, + "name": "PT Serif Caption", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSerifCaption.ttc", + "index": 1, + "name": "PT Serif Caption", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AquaKana.ttc", + "index": 0, + "name": ".Aqua Kana", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AquaKana.ttc", + "index": 1, + "name": ".Aqua Kana", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AquaKana.ttc", + "index": 1, + "name": ".Aqua Kana Bold", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/5feac9245cca79adaf638ded7a4994b1ddb33ca0.asset/AssetData/Hei.ttf", + "index": 0, + "name": "Hei", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/WenJinMinchoP0-Regular.ttf", + "index": 0, + "name": "WenJin Mincho Plane 0", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/0b5bb0a7f7e82279e049e3c943133f4b186ff8a2.asset/AssetData/Osaka.ttf", + "index": 0, + "name": "Osaka", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono SemBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntDReg.otf", + "index": 0, + "name": "STIXIntegralsD", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/37618f984b05fb22375ca0987912653aba363389.asset/AssetData/WawaSC-Regular.otf", + "index": 0, + "name": "Wawati SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Narrow.ttf", + "index": 0, + "name": "Arial Narrow", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ThinOblique.otf", + "index": 0, + "name": "Victor Mono", + "style": "oblique", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ThinOblique.otf", + "index": 0, + "name": "Victor Mono Thin", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Krypton Wide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMarchen-Regular.ttf", + "index": 0, + "name": "Noto Sans Marchen", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Radon SemiWide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMeeteiMayek-Regular.ttf", + "index": 0, + "name": "Noto Sans Meetei Mayek", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMeeteiMayek-Regular.ttf", + "index": 0, + "name": "Noto Sans MeeteiMayek", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXVar.otf", + "index": 0, + "name": "STIXVariants", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Wingdings 3.ttf", + "index": 0, + "name": "Wingdings 3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Bold.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Light.otf", + "index": 0, + "name": "Victor Mono", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Light.otf", + "index": 0, + "name": "Victor Mono Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-BoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u660e\u671d ProN.ttc", + "index": 0, + "name": "Hiragino Mincho ProN", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u660e\u671d ProN.ttc", + "index": 0, + "name": "Hiragino Mincho ProN W3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u660e\u671d ProN.ttc", + "index": 1, + "name": "Hiragino Mincho Pro", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u660e\u671d ProN.ttc", + "index": 1, + "name": "Hiragino Mincho Pro W3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u660e\u671d ProN.ttc", + "index": 2, + "name": "Hiragino Mincho ProN", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u660e\u671d ProN.ttc", + "index": 2, + "name": "Hiragino Mincho ProN W6", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u660e\u671d ProN.ttc", + "index": 3, + "name": "Hiragino Mincho Pro", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u660e\u671d ProN.ttc", + "index": 3, + "name": "Hiragino Mincho Pro W6", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-Bold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/b7a6a6575a699e801915b73b9e1e75c74a3404ce.asset/AssetData/YuGothic-Bold.otf", + "index": 0, + "name": "YuGothic", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/b7a6a6575a699e801915b73b9e1e75c74a3404ce.asset/AssetData/YuGothic-Bold.otf", + "index": 0, + "name": "YuGothic Bold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-MediumItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-MediumItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Italic.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Italic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Gurmukhi MN.ttc", + "index": 0, + "name": "Gurmukhi MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Gurmukhi MN.ttc", + "index": 1, + "name": "Gurmukhi MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFontMono-BoldItalic.ttf", + "index": 0, + "name": "GoMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansGothic-Regular.ttf", + "index": 0, + "name": "Noto Sans Gothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-Retina.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 450, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-Retina.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo Ret", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/53fe5be564086fefc7523ccd0a31200acf92e0e5.asset/AssetData/STHEITI.ttf", + "index": 0, + "name": "STHeiti", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FZSSJW--GB1-0.ttf", + "index": 0, + "name": "FZShuSong-Z01S", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMultani-Regular.ttf", + "index": 0, + "name": "Noto Sans Multani", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSylotiNagri-Regular.ttf", + "index": 0, + "name": "Noto Sans Syloti Nagri", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Al Tarikh.ttc", + "index": 0, + "name": "Al Tarikh", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Al Tarikh.ttc", + "index": 1, + "name": ".Al Tarikh PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-Regular.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXTwoMath.otf", + "index": 0, + "name": "STIX Two Math", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSans.ttc", + "index": 0, + "name": "PT Sans", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSans.ttc", + "index": 1, + "name": "PT Sans", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSans.ttc", + "index": 2, + "name": "PT Sans Narrow", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSans.ttc", + "index": 3, + "name": "PT Sans Narrow", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSans.ttc", + "index": 4, + "name": "PT Sans Caption", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSans.ttc", + "index": 5, + "name": "PT Sans Caption", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSans.ttc", + "index": 6, + "name": "PT Sans", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSans.ttc", + "index": 7, + "name": "PT Sans", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFNSRounded.ttf", + "index": 0, + "name": ".SF NS Rounded", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOlChiki-Regular.ttf", + "index": 0, + "name": "Noto Sans Ol Chiki", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bradley Hand Bold.ttf", + "index": 0, + "name": "Bradley Hand", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Radon Wide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton Wide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Wingdings.ttf", + "index": 0, + "name": "Wingdings", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 0, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 1, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 2, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 3, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 4, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 5, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 6, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 7, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 8, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 9, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 10, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 11, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 12, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 13, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 14, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 15, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 16, + "name": "Apple SD Gothic Neo", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "index": 17, + "name": ".Apple SD Gothic NeoI", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono NFM SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 0, + "name": "YuMincho", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 0, + "name": "YuMincho Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 1, + "name": "YuMincho", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 1, + "name": "YuMincho Demibold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 2, + "name": "YuMincho", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 2, + "name": "YuMincho Extrabold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 3, + "name": "YuMincho +36p Kana", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 3, + "name": "YuMincho +36p Kana Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 4, + "name": "YuMincho +36p Kana", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 4, + "name": "YuMincho +36p Kana Demibold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 5, + "name": "YuMincho +36p Kana", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/99517f5220d46dff05d0dbb2a22d0036afefb089.asset/AssetData/YuMincho.ttc", + "index": 5, + "name": "YuMincho +36p Kana Extrabold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/KufiStandardGK.ttc", + "index": 0, + "name": "KufiStandardGK", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/KufiStandardGK.ttc", + "index": 1, + "name": ".KufiStandardGK PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Apple Braille Outline 8 Dot.ttf", + "index": 0, + "name": "Apple Braille", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldTurkic-Regular.ttf", + "index": 0, + "name": "Noto Sans Old Turkic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-Bold.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntSmBol.otf", + "index": 0, + "name": "STIXIntegralsSm", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansBuginese-Regular.ttf", + "index": 0, + "name": "Noto Sans Buginese", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-Regular.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFCompact.ttf", + "index": 0, + "name": ".SF Compact", + "style": "normal", + "variant": "normal", + "weight": 1000, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-LightItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-LightItalic.otf", + "index": 0, + "name": "Monaspace Krypton Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Apple Chancery.ttf", + "index": 0, + "name": "Apple Chancery", + "style": "normal", + "variant": "normal", + "weight": 0, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntDBol.otf", + "index": 0, + "name": "STIXIntegralsD", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiBold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiBold.otf", + "index": 0, + "name": "Monaspace Argon SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFNSMonoItalic.ttf", + "index": 0, + "name": ".SF NS Mono", + "style": "italic", + "variant": "normal", + "weight": 295, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/DecoTypeNastaleeqUrdu.ttc", + "index": 0, + "name": ".DecoType Nastaleeq Urdu UI", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/DecoTypeNastaleeqUrdu.ttc", + "index": 1, + "name": ".DecoType Nastaleeq Urdu UI", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSerifNyiakengPuachueHmong-Regular.ttf", + "index": 0, + "name": "Noto Serif Hmong Nyiakeng", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Argon Wide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideBold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideBold.otf", + "index": 0, + "name": "Monaspace Radon Wide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansTagalog-Regular.ttf", + "index": 0, + "name": "Noto Sans Tagalog", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideMedium.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideMedium.otf", + "index": 0, + "name": "Monaspace Argon Wide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMendeKikakui-Regular.ttf", + "index": 0, + "name": "Noto Sans Mende Kikakui", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Radon Wide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntSmReg.otf", + "index": 0, + "name": "STIXIntegralsSm", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W6.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W6.ttc", + "index": 0, + "name": "Hiragino Sans W6", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W6.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W6.ttc", + "index": 2, + "name": "Hiragino Kaku Gothic ProN", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W6.ttc", + "index": 2, + "name": "Hiragino Kaku Gothic ProN W6", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W6.ttc", + "index": 3, + "name": "Hiragino Kaku Gothic Pro", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W6.ttc", + "index": 3, + "name": "Hiragino Kaku Gothic Pro W6", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP Thin", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Palatino.ttc", + "index": 0, + "name": "Palatino", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Palatino.ttc", + "index": 1, + "name": "Palatino", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Palatino.ttc", + "index": 2, + "name": "Palatino", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Palatino.ttc", + "index": 3, + "name": "Palatino", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Argon SemiWide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Tamil MN.ttc", + "index": 0, + "name": "Tamil MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Tamil MN.ttc", + "index": 1, + "name": "Tamil MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 0, + "name": "Arial Hebrew", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 1, + "name": "Arial Hebrew", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 2, + "name": "Arial Hebrew", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 3, + "name": ".Arial Hebrew Desk Interface", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 4, + "name": ".Arial Hebrew Desk Interface", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 5, + "name": ".Arial Hebrew Desk Interface", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 6, + "name": "Arial Hebrew Scholar", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 7, + "name": "Arial Hebrew Scholar", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ArialHB.ttc", + "index": 8, + "name": "Arial Hebrew Scholar", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansWancho-Regular.ttf", + "index": 0, + "name": "Noto Sans Wancho", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ThonburiUI.ttc", + "index": 0, + "name": ".ThonburiUI", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ThonburiUI.ttc", + "index": 1, + "name": ".ThonburiUIWatch", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansKaithi-Regular.ttf", + "index": 0, + "name": "Noto Sans Kaithi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 0, + "name": "Avenir Next Condensed", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 1, + "name": "Avenir Next Condensed", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 2, + "name": "Avenir Next Condensed", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 2, + "name": "Avenir Next Condensed Demi Bold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 3, + "name": "Avenir Next Condensed", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 3, + "name": "Avenir Next Condensed Demi Bold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 4, + "name": "Avenir Next Condensed", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 5, + "name": "Avenir Next Condensed", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 5, + "name": "Avenir Next Condensed Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 6, + "name": "Avenir Next Condensed", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 6, + "name": "Avenir Next Condensed Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 7, + "name": "Avenir Next Condensed", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 8, + "name": "Avenir Next Condensed", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 8, + "name": "Avenir Next Condensed Heavy", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 9, + "name": "Avenir Next Condensed", + "style": "italic", + "variant": "normal", + "weight": 900, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 9, + "name": "Avenir Next Condensed Heavy", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 10, + "name": "Avenir Next Condensed", + "style": "normal", + "variant": "normal", + "weight": 275, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 10, + "name": "Avenir Next Condensed Ultra Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 11, + "name": "Avenir Next Condensed", + "style": "italic", + "variant": "normal", + "weight": 275, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir Next Condensed.ttc", + "index": 11, + "name": "Avenir Next Condensed Ultra Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Regular.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Regular.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ExtraLight.otf", + "index": 0, + "name": "Victor Mono", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ExtraLight.otf", + "index": 0, + "name": "Victor Mono ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Hoefler Text.ttc", + "index": 0, + "name": "Hoefler Text", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Hoefler Text.ttc", + "index": 1, + "name": "Hoefler Text", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Hoefler Text.ttc", + "index": 2, + "name": "Hoefler Text", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Hoefler Text.ttc", + "index": 3, + "name": "Hoefler Text", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Impact.ttf", + "index": 0, + "name": "Impact", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PartyLET-plain.ttf", + "index": 0, + "name": "Party LET", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFontPropo-Regular.ttf", + "index": 0, + "name": "GoMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Italic.otf", + "index": 0, + "name": "Victor Mono", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Neon SemiWide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Optima.ttc", + "index": 0, + "name": "Optima", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Optima.ttc", + "index": 1, + "name": "Optima", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Optima.ttc", + "index": 2, + "name": "Optima", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Optima.ttc", + "index": 3, + "name": "Optima", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Optima.ttc", + "index": 4, + "name": "Optima", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXGeneralBolIta.otf", + "index": 0, + "name": "STIXGeneral", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Ayuthaya.ttf", + "index": 0, + "name": "Ayuthaya", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Library/Fonts/Artifakt Element Bold Italic.ttf", + "index": 0, + "name": "Artifakt Element", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizOneSymReg.otf", + "index": 0, + "name": "STIXSizeOneSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansImperialAramaic-Regular.ttf", + "index": 0, + "name": "Noto Sans Imperial Aramaic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansImperialAramaic-Regular.ttf", + "index": 0, + "name": "Noto Sans ImpAramaic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/b7cb5af102eef622e55e701862272b80e89d2d5f.asset/AssetData/BMHannaAir-Regular.otf", + "index": 0, + "name": "BM Hanna Air", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/b7cb5af102eef622e55e701862272b80e89d2d5f.asset/AssetData/BMHannaAir-Regular.otf", + "index": 0, + "name": "BM HANNA Air OTF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldSouthArabian-Regular.ttf", + "index": 0, + "name": "Noto Sans Old South Arabian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldSouthArabian-Regular.ttf", + "index": 0, + "name": "Noto Sans OldSouArab", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W9.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W9.ttc", + "index": 0, + "name": "Hiragino Sans W9", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W9.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 0, + "name": ".SF Bangla", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 1, + "name": ".SF Devanagari", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 2, + "name": ".SF Gujarati", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 3, + "name": ".SF Gurmukhi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 4, + "name": ".SF Kannada", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 5, + "name": ".SF Malayalam", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 6, + "name": ".SF Odia", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 7, + "name": ".SF Tamil", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFIndia.ttc", + "index": 8, + "name": ".SF Telugu", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NewYorkItalic.ttf", + "index": 0, + "name": ".New York", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldNorthArabian-Regular.ttf", + "index": 0, + "name": "Noto Sans Old North Arabian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldNorthArabian-Regular.ttf", + "index": 0, + "name": "Noto Sans OldNorArab", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorBangla.ttc", + "index": 0, + "name": "Kohinoor Bangla", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorBangla.ttc", + "index": 1, + "name": "Kohinoor Bangla", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorBangla.ttc", + "index": 2, + "name": "Kohinoor Bangla", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorBangla.ttc", + "index": 3, + "name": "Kohinoor Bangla", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorBangla.ttc", + "index": 4, + "name": "Kohinoor Bangla", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFArmenian.ttf", + "index": 0, + "name": ".SF Armenian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFCamera.ttf", + "index": 0, + "name": ".SF Camera", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Radon Wide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM Thin", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiBold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiBold.otf", + "index": 0, + "name": "Monaspace Xenon SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a35803b18dea500ee1e426f403635efbe5a84bd4.asset/AssetData/ToppanBunkyuMinchoPr6N-Regular.otf", + "index": 0, + "name": "Toppan Bunkyu Mincho", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a35803b18dea500ee1e426f403635efbe5a84bd4.asset/AssetData/ToppanBunkyuMinchoPr6N-Regular.otf", + "index": 0, + "name": "Toppan Bunkyu Mincho Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFNSItalic.ttf", + "index": 0, + "name": "System Font", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansModi-Regular.ttf", + "index": 0, + "name": "Noto Sans Modi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ThinItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "italic", + "variant": "normal", + "weight": 250, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ThinItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN Thin", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/LucidaGrande.ttc", + "index": 0, + "name": "Lucida Grande", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/LucidaGrande.ttc", + "index": 1, + "name": "Lucida Grande", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/LucidaGrande.ttc", + "index": 2, + "name": ".Lucida Grande UI", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/LucidaGrande.ttc", + "index": 3, + "name": ".Lucida Grande UI", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP Thin", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W4.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W4.ttc", + "index": 0, + "name": "Hiragino Sans W4", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W4.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Sinhala Sangam MN.ttc", + "index": 0, + "name": "Sinhala Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Sinhala Sangam MN.ttc", + "index": 1, + "name": "Sinhala Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-ExtraBold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-ExtraBold.otf", + "index": 0, + "name": "Monaspace Krypton ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-LightItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-LightItalic.otf", + "index": 0, + "name": "Monaspace Xenon Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Neon SemiWide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-BoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Argon SemiWide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a9507b2dd1e57ecf7dc3a2fe25e8abfef12973ad.asset/AssetData/TsukushiAMaruGothic.ttc", + "index": 0, + "name": "Tsukushi A Round Gothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a9507b2dd1e57ecf7dc3a2fe25e8abfef12973ad.asset/AssetData/TsukushiAMaruGothic.ttc", + "index": 0, + "name": "Tsukushi A Round Gothic Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a9507b2dd1e57ecf7dc3a2fe25e8abfef12973ad.asset/AssetData/TsukushiAMaruGothic.ttc", + "index": 1, + "name": "Tsukushi A Round Gothic", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a9507b2dd1e57ecf7dc3a2fe25e8abfef12973ad.asset/AssetData/TsukushiAMaruGothic.ttc", + "index": 1, + "name": "Tsukushi A Round Gothic Bold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Italic.ttf", + "index": 0, + "name": "Arial", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial.ttf", + "index": 0, + "name": "Arial", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Gujarati Sangam MN.ttc", + "index": 0, + "name": "Gujarati Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Gujarati Sangam MN.ttc", + "index": 1, + "name": "Gujarati Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Apple Symbols.ttf", + "index": 0, + "name": "Apple Symbols", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Trebuchet MS.ttf", + "index": 0, + "name": "Trebuchet MS", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansDuployan-Regular.ttf", + "index": 0, + "name": "Noto Sans Duployan", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/ee89e7987a76cc8cfdff36c96bd7bc77655b343e.asset/AssetData/YuGothic-Medium.otf", + "index": 0, + "name": "YuGothic", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/ee89e7987a76cc8cfdff36c96bd7bc77655b343e.asset/AssetData/YuGothic-Medium.otf", + "index": 0, + "name": "YuGothic Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon Wide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono NFM ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansKharoshthi-Regular.ttf", + "index": 0, + "name": "Noto Sans Kharoshthi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon SemiWide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-LightItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-LightItalic.otf", + "index": 0, + "name": "Monaspace Argon Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Sinhala MN.ttc", + "index": 0, + "name": "Sinhala MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Sinhala MN.ttc", + "index": 1, + "name": "Sinhala MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AppleMyungjo.ttf", + "index": 0, + "name": "AppleMyungjo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-Bold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Radon SemiWide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-LightItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-LightItalic.otf", + "index": 0, + "name": "Monaspace Neon Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideItalic.otf", + "index": 0, + "name": "Monaspace Krypton Wide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon Wide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Silom.ttf", + "index": 0, + "name": "Silom", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansLydian-Regular.ttf", + "index": 0, + "name": "Noto Sans Lydian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-SemiBold.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontPropo-SemiBold.ttf", + "index": 0, + "name": "FiraCode Nerd Font Propo SemBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W7.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W7.ttc", + "index": 0, + "name": "Hiragino Sans W7", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W7.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-Italic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-Light.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-Light.otf", + "index": 0, + "name": "Monaspace Radon Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Argon Wide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Radon Wide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/DIN Condensed Bold.ttf", + "index": 0, + "name": "DIN Condensed", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Radon SemiWide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/f14049099a04e570b893c01d9a4cd71f87c9e8d8.asset/AssetData/Lantinghei.ttc", + "index": 0, + "name": "Lantinghei SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/f14049099a04e570b893c01d9a4cd71f87c9e8d8.asset/AssetData/Lantinghei.ttc", + "index": 1, + "name": "Lantinghei SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/f14049099a04e570b893c01d9a4cd71f87c9e8d8.asset/AssetData/Lantinghei.ttc", + "index": 2, + "name": "Lantinghei SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/f14049099a04e570b893c01d9a4cd71f87c9e8d8.asset/AssetData/Lantinghei.ttc", + "index": 3, + "name": "Lantinghei TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/f14049099a04e570b893c01d9a4cd71f87c9e8d8.asset/AssetData/Lantinghei.ttc", + "index": 4, + "name": "Lantinghei TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/f14049099a04e570b893c01d9a4cd71f87c9e8d8.asset/AssetData/Lantinghei.ttc", + "index": 5, + "name": "Lantinghei TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMro-Regular.ttf", + "index": 0, + "name": "Noto Sans Mro", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Thin.otf", + "index": 0, + "name": "Victor Mono", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Thin.otf", + "index": 0, + "name": "Victor Mono Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-Medium.ttf", + "index": 0, + "name": "FiraCode Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFont-Medium.ttf", + "index": 0, + "name": "FiraCode Nerd Font Med", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansHanifiRohingya-Regular.ttf", + "index": 0, + "name": "Noto Sans Hanifi Rohingya", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansHanifiRohingya-Regular.ttf", + "index": 0, + "name": "Noto Sans HanifiRohg", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ExtraLightItalic.otf", + "index": 0, + "name": "Victor Mono", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ExtraLightItalic.otf", + "index": 0, + "name": "Victor Mono ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Courier.ttc", + "index": 0, + "name": "Courier", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Courier.ttc", + "index": 1, + "name": "Courier", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Courier.ttc", + "index": 2, + "name": "Courier", + "style": "oblique", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Courier.ttc", + "index": 3, + "name": "Courier", + "style": "oblique", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiBold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiBold.otf", + "index": 0, + "name": "Monaspace Radon SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansLimbu-Regular.ttf", + "index": 0, + "name": "Noto Sans Limbu", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Light.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Light.ttf", + "index": 0, + "name": "JetBrainsMono NF Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Light.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-Light.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-Light.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansEgyptianHieroglyphs-Regular.ttf", + "index": 0, + "name": "Noto Sans Egyptian Hieroglyphs", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansEgyptianHieroglyphs-Regular.ttf", + "index": 0, + "name": "Noto Sans EgyptHiero", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXGeneralBol.otf", + "index": 0, + "name": "STIXGeneral", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Bold.ttf", + "index": 0, + "name": "Arial", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Regular.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Regular.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W0.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W0.ttc", + "index": 0, + "name": "Hiragino Sans W0", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W0.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFont-BoldItalic.ttf", + "index": 0, + "name": "GoMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideBold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideBold.otf", + "index": 0, + "name": "Monaspace Xenon Wide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bodoni 72.ttc", + "index": 0, + "name": "Bodoni 72", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bodoni 72.ttc", + "index": 1, + "name": "Bodoni 72", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bodoni 72.ttc", + "index": 2, + "name": "Bodoni 72", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-Italic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansLinearA-Regular.ttf", + "index": 0, + "name": "Noto Sans Linear A", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSerif.ttc", + "index": 0, + "name": "PT Serif", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSerif.ttc", + "index": 1, + "name": "PT Serif", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSerif.ttc", + "index": 2, + "name": "PT Serif", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTSerif.ttc", + "index": 3, + "name": "PT Serif", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Menlo.ttc", + "index": 0, + "name": "Menlo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Menlo.ttc", + "index": 1, + "name": "Menlo", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Menlo.ttc", + "index": 2, + "name": "Menlo", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Menlo.ttc", + "index": 3, + "name": "Menlo", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon SemiWide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 0, + "name": "Gill Sans", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 1, + "name": "Gill Sans", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 2, + "name": "Gill Sans", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 3, + "name": "Gill Sans", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 4, + "name": "Gill Sans", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 5, + "name": "Gill Sans", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 6, + "name": "Gill Sans", + "style": "normal", + "variant": "normal", + "weight": 1000, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 7, + "name": "Gill Sans", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GillSans.ttc", + "index": 8, + "name": "Gill Sans", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GujaratiMT.ttc", + "index": 0, + "name": "Gujarati MT", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/GujaratiMT.ttc", + "index": 1, + "name": "Gujarati MT", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFontPropo-Italic.ttf", + "index": 0, + "name": "GoMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Argon SemiWide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansNabataean-Regular.ttf", + "index": 0, + "name": "Noto Sans Nabataean", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/0ebfdb7e5a2a1db668fa6209779e0725d6f6baba.asset/AssetData/BIZ_UDMincho-regular.ttf", + "index": 0, + "name": "BIZ UDMincho", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Kokonor.ttf", + "index": 0, + "name": "Kokonor", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-ExtraLight.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-ExtraLight.otf", + "index": 0, + "name": "Monaspace Xenon ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansTaiLe-Regular.ttf", + "index": 0, + "name": "Noto Sans Tai Le", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-45-Light.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-45-Light.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 45 Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFHebrewRounded.ttf", + "index": 0, + "name": ".SF Hebrew Rounded", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideItalic.otf", + "index": 0, + "name": "Monaspace Neon Wide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorGujarati.ttc", + "index": 0, + "name": "Kohinoor Gujarati", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorGujarati.ttc", + "index": 1, + "name": "Kohinoor Gujarati", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorGujarati.ttc", + "index": 2, + "name": "Kohinoor Gujarati", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorGujarati.ttc", + "index": 3, + "name": "Kohinoor Gujarati", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/KohinoorGujarati.ttc", + "index": 4, + "name": "Kohinoor Gujarati", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Bold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Bold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Bold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Bold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Trebuchet MS Italic.ttf", + "index": 0, + "name": "Trebuchet MS", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/1fb44cf128344a11e654a43ccd7a45a68026bf5d.asset/AssetData/NanumScript.ttc", + "index": 0, + "name": "Nanum Brush Script", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/1fb44cf128344a11e654a43ccd7a45a68026bf5d.asset/AssetData/NanumScript.ttc", + "index": 1, + "name": "Nanum Pen Script", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon SemiWide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-35-Thin.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 250, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-35-Thin.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 35 Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Symbol.ttf", + "index": 0, + "name": "Symbol", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Georgia Italic.ttf", + "index": 0, + "name": "Georgia", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/SFCompactRounded.ttf", + "index": 0, + "name": ".SF Compact Rounded", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Skia.ttf", + "index": 0, + "name": "Skia", + "style": "normal", + "variant": "normal", + "weight": 5, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSoraSompeng-Regular.ttf", + "index": 0, + "name": "Noto Sans Sora Sompeng", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSoraSompeng-Regular.ttf", + "index": 0, + "name": "Noto Sans SoraSomp", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-75-SemiBold.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-75-SemiBold.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 75 SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-LightItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-LightItalic.otf", + "index": 0, + "name": "Monaspace Radon Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/DevanagariMT.ttc", + "index": 0, + "name": "Devanagari MT", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/DevanagariMT.ttc", + "index": 1, + "name": "Devanagari MT", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTMono.ttc", + "index": 0, + "name": "PT Mono", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PTMono.ttc", + "index": 1, + "name": "PT Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon Wide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Radon ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-Light.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-Light.otf", + "index": 0, + "name": "Monaspace Neon Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a694995bfafc612fac18a23b283bdf239ef4f2c.asset/AssetData/BMKirangHaerang-Regular.otf", + "index": 0, + "name": "BM Kirang Haerang", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a694995bfafc612fac18a23b283bdf239ef4f2c.asset/AssetData/BMKirangHaerang-Regular.otf", + "index": 0, + "name": "BM KIRANGHAERANG OTF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Copperplate.ttc", + "index": 0, + "name": "Copperplate", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Copperplate.ttc", + "index": 1, + "name": "Copperplate", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Copperplate.ttc", + "index": 2, + "name": "Copperplate", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon Wide", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-Bold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Academy Engraved LET Fonts.ttf", + "index": 0, + "name": "Academy Engraved LET", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-ExtraLight.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ExtraLightOblique.otf", + "index": 0, + "name": "Victor Mono", + "style": "oblique", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ExtraLightOblique.otf", + "index": 0, + "name": "Victor Mono ExtraLight", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideItalic.otf", + "index": 0, + "name": "Monaspace Argon SemiWide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Andale Mono.ttf", + "index": 0, + "name": "Andale Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/DecoTypeNaskh.ttc", + "index": 0, + "name": "DecoType Naskh", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/DecoTypeNaskh.ttc", + "index": 1, + "name": ".DecoType Naskh PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansUgaritic-Regular.ttf", + "index": 0, + "name": "Noto Sans Ugaritic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansThaana-Regular.ttf", + "index": 0, + "name": "Noto Sans Thaana", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Neon Wide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Chalkboard.ttc", + "index": 0, + "name": "Chalkboard", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Chalkboard.ttc", + "index": 1, + "name": "Chalkboard", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-Regular.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Courier New.ttf", + "index": 0, + "name": "Courier New", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Medium.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Medium.ttf", + "index": 0, + "name": "JetBrainsMono NF Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Medium.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Lao MN.ttc", + "index": 0, + "name": "Lao MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Lao MN.ttc", + "index": 1, + "name": "Lao MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideRegular.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideRegular.otf", + "index": 0, + "name": "Monaspace Argon Wide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Didot.ttc", + "index": 0, + "name": "Didot", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Didot.ttc", + "index": 1, + "name": "Didot", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Didot.ttc", + "index": 2, + "name": "Didot", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Telugu Sangam MN.ttc", + "index": 0, + "name": "Telugu Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Telugu Sangam MN.ttc", + "index": 1, + "name": "Telugu Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-Regular.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-SemiBold.otf", + "index": 0, + "name": "Victor Mono", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-SemiBold.otf", + "index": 0, + "name": "Victor Mono SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/81e879dcb4d596ab140f7cffcd5ccaaf8108519b.asset/AssetData/Klee.ttc", + "index": 0, + "name": "Klee", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/81e879dcb4d596ab140f7cffcd5ccaaf8108519b.asset/AssetData/Klee.ttc", + "index": 0, + "name": "Klee Demibold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/81e879dcb4d596ab140f7cffcd5ccaaf8108519b.asset/AssetData/Klee.ttc", + "index": 1, + "name": "Klee", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/81e879dcb4d596ab140f7cffcd5ccaaf8108519b.asset/AssetData/Klee.ttc", + "index": 1, + "name": "Klee Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon Wide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldItalic-Regular.ttf", + "index": 0, + "name": "Noto Sans Old Italic", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansPsalterPahlavi-Regular.ttf", + "index": 0, + "name": "Noto Sans Psalter Pahlavi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansPsalterPahlavi-Regular.ttf", + "index": 0, + "name": "Noto Sans PsaPahlavi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Italic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Italic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Narrow Bold Italic.ttf", + "index": 0, + "name": "Arial Narrow", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SignPainter.ttc", + "index": 0, + "name": "SignPainter", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SignPainter.ttc", + "index": 0, + "name": "SignPainter-HouseScript", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SignPainter.ttc", + "index": 1, + "name": "SignPainter", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SignPainter.ttc", + "index": 1, + "name": "SignPainter-HouseScript", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansChakma-Regular.ttf", + "index": 0, + "name": "Noto Sans Chakma", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-Retina.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 450, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FiraCodeNerdFontMono-Retina.ttf", + "index": 0, + "name": "FiraCode Nerd Font Mono Ret", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AppleGothic.ttf", + "index": 0, + "name": "AppleGothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono NFM ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF Thin", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-ThinItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Light.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Herculanum.ttf", + "index": 0, + "name": "Herculanum", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideLightItalic.otf", + "index": 0, + "name": "Monaspace Argon Wide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansGunjalaGondi-Regular.otf", + "index": 0, + "name": "Noto Sans Gunjala Gondi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideLight.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideLight.otf", + "index": 0, + "name": "Monaspace Argon Wide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Verdana Italic.ttf", + "index": 0, + "name": "Verdana", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansLycian-Regular.ttf", + "index": 0, + "name": "Noto Sans Lycian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-ExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Neon ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-Bold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/ac5cfaf67b84566ed61f464ef9820d3d59d18bf0.asset/AssetData/YuppyTC-Regular.otf", + "index": 0, + "name": "Yuppy TC", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono NF Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Neon SemiWide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideMedium.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideMedium.otf", + "index": 0, + "name": "Monaspace Xenon Wide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Comic Sans MS Bold.ttf", + "index": 0, + "name": "Comic Sans MS", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideItalic.otf", + "index": 0, + "name": "Monaspace Argon Wide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 0, + "name": "Avenir", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 0, + "name": "Avenir Book", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 1, + "name": "Avenir", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 1, + "name": "Avenir Book", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 2, + "name": "Avenir", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 2, + "name": "Avenir Black", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 3, + "name": "Avenir", + "style": "oblique", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 3, + "name": "Avenir Black Oblique", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 4, + "name": "Avenir", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 4, + "name": "Avenir Heavy", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 5, + "name": "Avenir", + "style": "oblique", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 5, + "name": "Avenir Heavy", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 6, + "name": "Avenir", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 6, + "name": "Avenir Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 7, + "name": "Avenir", + "style": "oblique", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 7, + "name": "Avenir Light", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 8, + "name": "Avenir", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 8, + "name": "Avenir Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 9, + "name": "Avenir", + "style": "oblique", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 9, + "name": "Avenir Medium", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 10, + "name": "Avenir", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Avenir.ttc", + "index": 11, + "name": "Avenir", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideRegular.otf", + "index": 0, + "name": "Monaspace Argon SemiWide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideLight.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideLight.otf", + "index": 0, + "name": "Monaspace Krypton Wide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Radon SemiWide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton Wide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideItalic.otf", + "index": 0, + "name": "Monaspace Radon Wide", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/c6dd5dda81ed310c2248630a4e62f4fd71316d91.asset/AssetData/ToppanBunkyuMidashiGothicStdN-ExtraBold.otf", + "index": 0, + "name": "Toppan Bunkyu Midashi Gothic", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/c6dd5dda81ed310c2248630a4e62f4fd71316d91.asset/AssetData/ToppanBunkyuMidashiGothicStdN-ExtraBold.otf", + "index": 0, + "name": "Toppan Bunkyu Midashi Gothic Extrabold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Apple Braille Outline 6 Dot.ttf", + "index": 0, + "name": "Apple Braille", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-115-Black.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 1000, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-115-Black.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 115 Black", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Kailasa.ttc", + "index": 0, + "name": "Kailasa", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Kailasa.ttc", + "index": 1, + "name": "Kailasa", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Songti.ttc", + "index": 0, + "name": "Songti SC", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Songti.ttc", + "index": 1, + "name": "Songti SC", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Songti.ttc", + "index": 2, + "name": "Songti TC", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Songti.ttc", + "index": 3, + "name": "Songti SC", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Songti.ttc", + "index": 4, + "name": "STSong", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Songti.ttc", + "index": 5, + "name": "Songti TC", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Songti.ttc", + "index": 6, + "name": "Songti SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Songti.ttc", + "index": 7, + "name": "Songti TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Neon SemiWide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Italic.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Sathu.ttf", + "index": 0, + "name": "Sathu", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ExtraLight.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "normal", + "variant": "normal", + "weight": 275, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ExtraLight.ttf", + "index": 0, + "name": "Maple Mono NF CN ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansManichaean-Regular.ttf", + "index": 0, + "name": "Noto Sans Manichaean", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono NF ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-ExtraBold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideLight.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideLight.otf", + "index": 0, + "name": "Monaspace Radon Wide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldPersian-Regular.ttf", + "index": 0, + "name": "Noto Sans Old Persian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldPersian-Regular.ttf", + "index": 0, + "name": "Noto Sans OldPersian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXSizFiveSymReg.otf", + "index": 0, + "name": "STIXSizeFiveSym", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXNonUniIta.otf", + "index": 0, + "name": "STIXNonUnicode", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Courier New Italic.ttf", + "index": 0, + "name": "Courier New", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSerifYezidi-Regular.otf", + "index": 0, + "name": "Noto Serif Yezidi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Khmer MN.ttc", + "index": 0, + "name": "Khmer MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Khmer MN.ttc", + "index": 1, + "name": "Khmer MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/WenJinMinchoP2-Regular.ttf", + "index": 0, + "name": "WenJin Mincho Plane 2", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntUpDBol.otf", + "index": 0, + "name": "STIXIntegralsUpD", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansKayahLi-Regular.ttf", + "index": 0, + "name": "Noto Sans Kayah Li", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Tamil Sangam MN.ttc", + "index": 0, + "name": "Tamil Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Tamil Sangam MN.ttc", + "index": 1, + "name": "Grantha Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Tamil Sangam MN.ttc", + "index": 2, + "name": "Tamil Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Tamil Sangam MN.ttc", + "index": 3, + "name": "Grantha Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoNastaliq.ttc", + "index": 0, + "name": "Noto Nastaliq Urdu", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoNastaliq.ttc", + "index": 1, + "name": ".Noto Nastaliq Urdu UI", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoNastaliq.ttc", + "index": 2, + "name": "Noto Nastaliq Urdu", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoNastaliq.ttc", + "index": 3, + "name": ".Noto Nastaliq Urdu UI", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/STHeiti Light.ttc", + "index": 0, + "name": "Heiti TC", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/STHeiti Light.ttc", + "index": 1, + "name": "Heiti SC", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Bold.otf", + "index": 0, + "name": "Victor Mono", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Neon Wide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Regular.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-Regular.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Beirut.ttc", + "index": 0, + "name": "Beirut", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Beirut.ttc", + "index": 1, + "name": ".Beirut PUA", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlimamaShuHeiTi-Bold.ttf", + "index": 0, + "name": "Alimama ShuHeiTi", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlimamaShuHeiTi-Bold.ttf", + "index": 0, + "name": "Alimama ShuHeiTi Bold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansWarangCiti-Regular.ttf", + "index": 0, + "name": "Noto Sans Warang Citi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansWarangCiti-Regular.ttf", + "index": 0, + "name": "Noto Sans WarangCiti", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-SemiBold.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-SemiBold.ttf", + "index": 0, + "name": "Maple Mono NF CN SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/b860c3b445cd974141686f9fcfee362886d80bd9.asset/AssetData/YuppySC-Regular.otf", + "index": 0, + "name": "Yuppy SC", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Wingdings 2.ttf", + "index": 0, + "name": "Wingdings 2", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldPermic-Regular.ttf", + "index": 0, + "name": "Noto Sans Old Permic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/InaiMathi-MN.ttc", + "index": 0, + "name": "InaiMathi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/InaiMathi-MN.ttc", + "index": 1, + "name": "InaiMathi", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Times New Roman Bold.ttf", + "index": 0, + "name": "Times New Roman", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ZapfDingbats.ttf", + "index": 0, + "name": "Zapf Dingbats", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ThinItalic.otf", + "index": 0, + "name": "Victor Mono", + "style": "italic", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-ThinItalic.otf", + "index": 0, + "name": "Victor Mono Thin", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 0, + "name": "Damascus", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 1, + "name": ".Damascus PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 2, + "name": "Damascus", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 3, + "name": ".Damascus PUA", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 4, + "name": "Damascus", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 5, + "name": ".Damascus PUA", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 6, + "name": "Damascus", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 7, + "name": ".Damascus PUA", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 8, + "name": "Damascus", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Damascus.ttc", + "index": 9, + "name": ".Damascus PUA", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldHungarian-Regular.ttf", + "index": 0, + "name": "Noto Sans Old Hungarian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansOldHungarian-Regular.ttf", + "index": 0, + "name": "Noto Sans OldHung", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansPalmyrene-Regular.ttf", + "index": 0, + "name": "Noto Sans Palmyrene", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideRegular.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideRegular.otf", + "index": 0, + "name": "Monaspace Neon Wide", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-BoldItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-BoldItalic.otf", + "index": 0, + "name": "Victor Mono", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/9f4afe404b767c06554b8b78551e10e92f695147.asset/AssetData/WawaTC-Regular.otf", + "index": 0, + "name": "Wawati TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Neon Wide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-LightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansNewTaiLue-Regular.ttf", + "index": 0, + "name": "Noto Sans New Tai Lue", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansNewTaiLue-Regular.ttf", + "index": 0, + "name": "Noto Sans NewTaiLue", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Noteworthy.ttc", + "index": 0, + "name": "Noteworthy", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Noteworthy.ttc", + "index": 1, + "name": "Noteworthy", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMiao-Regular.ttf", + "index": 0, + "name": "Noto Sans Miao", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideExtraBold.otf", + "index": 0, + "name": "Monaspace Radon SemiWide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Xenon Wide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/42529d87b12845309dd4a57dea9e58446826e94c.asset/AssetData/BIZ_UDGothic.ttc", + "index": 0, + "name": "BIZ UDGothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/42529d87b12845309dd4a57dea9e58446826e94c.asset/AssetData/BIZ_UDGothic.ttc", + "index": 1, + "name": "BIZ UDGothic", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Radon SemiWide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/STHeiti Medium.ttc", + "index": 0, + "name": "Heiti TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/STHeiti Medium.ttc", + "index": 1, + "name": "Heiti SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntUpReg.otf", + "index": 0, + "name": "STIXIntegralsUp", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Baghdad.ttc", + "index": 0, + "name": "Baghdad", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Baghdad.ttc", + "index": 1, + "name": ".Baghdad PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Apple Braille Pinpoint 8 Dot.ttf", + "index": 0, + "name": "Apple Braille", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansCoptic-Regular.ttf", + "index": 0, + "name": "Noto Sans Coptic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Baskerville.ttc", + "index": 0, + "name": "Baskerville", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Baskerville.ttc", + "index": 1, + "name": "Baskerville", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Baskerville.ttc", + "index": 2, + "name": "Baskerville", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Baskerville.ttc", + "index": 3, + "name": "Baskerville", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Baskerville.ttc", + "index": 4, + "name": "Baskerville", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Baskerville.ttc", + "index": 5, + "name": "Baskerville", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-ExtraBold.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-ExtraBold.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiBold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiBold.otf", + "index": 0, + "name": "Monaspace Krypton SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideMedium.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSerifAhom-Regular.ttf", + "index": 0, + "name": "Noto Serif Ahom", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Nadeem.ttc", + "index": 0, + "name": "Nadeem", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Nadeem.ttc", + "index": 1, + "name": ".Nadeem PUA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideSemiBold.otf", + "index": 0, + "name": "Monaspace Neon Wide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Thin.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-WideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Argon Wide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-Light.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-Light.otf", + "index": 0, + "name": "Monaspace Argon Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-Medium.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-Medium.otf", + "index": 0, + "name": "Monaspace Radon Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-ExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-MediumItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-MediumItalic.otf", + "index": 0, + "name": "Monaspace Radon Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bodoni 72 OS.ttc", + "index": 0, + "name": "Bodoni 72 Oldstyle", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bodoni 72 OS.ttc", + "index": 1, + "name": "Bodoni 72 Oldstyle", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bodoni 72 OS.ttc", + "index": 2, + "name": "Bodoni 72 Oldstyle", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Thin.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Thin.ttf", + "index": 0, + "name": "JetBrainsMono NFP Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-Thin.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansAdlam-Regular.ttf", + "index": 0, + "name": "Noto Sans Adlam", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/2cbbb46d93096244bde9fa13aa10939987dd0964.asset/AssetData/Gungseouche.ttf", + "index": 0, + "name": "GungSeo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/c4f5f063cf47a2009786f645b423c09ea75666b8.asset/AssetData/WeibeiTC-Bold.otf", + "index": 0, + "name": "Weibei TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/c4f5f063cf47a2009786f645b423c09ea75666b8.asset/AssetData/WeibeiTC-Bold.otf", + "index": 0, + "name": "Weibei TC Bold", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/EuphemiaCAS.ttc", + "index": 0, + "name": "Euphemia UCAS", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/EuphemiaCAS.ttc", + "index": 1, + "name": "Euphemia UCAS", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/EuphemiaCAS.ttc", + "index": 2, + "name": "Euphemia UCAS", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NewYork.ttf", + "index": 0, + "name": ".New York", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXGeneral.otf", + "index": 0, + "name": "STIXGeneral", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Bold Italic.ttf", + "index": 0, + "name": "Arial", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/c6821a5885b1c099dc7e340ca61cd3ddb35cb62e.asset/AssetData/HeadlineA.ttf", + "index": 0, + "name": "HeadLineA", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Medium.otf", + "index": 0, + "name": "Victor Mono", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-Medium.otf", + "index": 0, + "name": "Victor Mono Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideLight.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-ExtraLight.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-ExtraLight.otf", + "index": 0, + "name": "Monaspace Krypton ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/FangZhengKaiTiJianTi-1.ttf", + "index": 0, + "name": "FZKai-Z03S", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFP", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontPropo-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Verdana Bold Italic.ttf", + "index": 0, + "name": "Verdana", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntUpBol.otf", + "index": 0, + "name": "STIXIntegralsUp", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansYi-Regular.ttf", + "index": 0, + "name": "Noto Sans Yi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Medium.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Medium.ttf", + "index": 0, + "name": "JetBrainsMono NFM Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Medium.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideExtraLightItalic.otf", + "index": 0, + "name": "Monaspace Radon SemiWide ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Trebuchet MS Bold.ttf", + "index": 0, + "name": "Trebuchet MS", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSunuwar-Regular.otf", + "index": 0, + "name": "Noto Sans Sunuwar", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon Wide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Mshtakan.ttc", + "index": 0, + "name": "Mshtakan", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Mshtakan.ttc", + "index": 1, + "name": "Mshtakan", + "style": "oblique", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Mshtakan.ttc", + "index": 2, + "name": "Mshtakan", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Mshtakan.ttc", + "index": 3, + "name": "Mshtakan", + "style": "oblique", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM ExtraLight", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-ExtraLightItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Medium.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-Medium.ttf", + "index": 0, + "name": "Maple Mono NF CN Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Krypton Wide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-SemiBoldItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-SemiBoldItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideMedium.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideMedium.otf", + "index": 0, + "name": "Monaspace Krypton Wide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bangla Sangam MN.ttc", + "index": 0, + "name": "Bangla Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Bangla Sangam MN.ttc", + "index": 1, + "name": "Bangla Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideLightItalic.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Lao Sangam MN.ttf", + "index": 0, + "name": "Lao Sangam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Italic.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Italic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon SemiWide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Webdings.ttf", + "index": 0, + "name": "Webdings", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/6372627020b45393e500bb1661c460d4a93aff49.asset/AssetData/LiSongPro.ttf", + "index": 0, + "name": "LiSong Pro", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-Medium.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMahajani-Regular.ttf", + "index": 0, + "name": "Noto Sans Mahajani", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Courier New Bold.ttf", + "index": 0, + "name": "Courier New", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-SemiBold.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Krungthep.ttf", + "index": 0, + "name": "Krungthep", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/\u65b9\u6b63\u5c0f\u6807\u5b8b\u7b80.TTF", + "index": 0, + "name": "FZXiaoBiaoSong-B05S", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AmericanTypewriter.ttc", + "index": 0, + "name": "American Typewriter", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AmericanTypewriter.ttc", + "index": 1, + "name": "American Typewriter", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AmericanTypewriter.ttc", + "index": 2, + "name": "American Typewriter", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AmericanTypewriter.ttc", + "index": 3, + "name": "American Typewriter", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AmericanTypewriter.ttc", + "index": 4, + "name": "American Typewriter", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AmericanTypewriter.ttc", + "index": 5, + "name": "American Typewriter", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/AmericanTypewriter.ttc", + "index": 6, + "name": "American Typewriter", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "condensed", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-ExtraLight.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-ExtraLight.otf", + "index": 0, + "name": "Monaspace Neon ExtraLight", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 0, + "name": ".SF Numeric", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 1, + "name": ".SF Adaptive Numeric", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 2, + "name": ".SF Soft Numeric", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 3, + "name": ".SF Adaptive Soft Numeric", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 4, + "name": ".ADT Slab Numeric", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 5, + "name": ".ADT Slab Soft Numeric", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 6, + "name": ".New York Numeric", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 7, + "name": ".New York Soft Numeric", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 8, + "name": ".SF Rail Numeric", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 9, + "name": ".SF Rail Rounded Numeric", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 10, + "name": ".SF Rounded Numeric", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/ADTNumeric.ttc", + "index": 11, + "name": ".SF Stencil Numeric", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFontMono-Bold.ttf", + "index": 0, + "name": "GoMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W2.ttc", + "index": 0, + "name": "Hiragino Sans", + "style": "normal", + "variant": "normal", + "weight": 250, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W2.ttc", + "index": 0, + "name": "Hiragino Sans W2", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/\u30d2\u30e9\u30ad\u3099\u30ce\u89d2\u30b3\u3099\u30b7\u30c3\u30af W2.ttc", + "index": 1, + "name": ".Hiragino Kaku Gothic Interface", + "style": "normal", + "variant": "normal", + "weight": 250, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Thonburi.ttc", + "index": 0, + "name": "Thonburi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Thonburi.ttc", + "index": 1, + "name": "Thonburi", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Thonburi.ttc", + "index": 2, + "name": "Thonburi", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Hiragino Sans GB.ttc", + "index": 0, + "name": "Hiragino Sans GB", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Hiragino Sans GB.ttc", + "index": 0, + "name": "Hiragino Sans GB W3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Hiragino Sans GB.ttc", + "index": 1, + "name": ".Hiragino Sans GB Interface", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Hiragino Sans GB.ttc", + "index": 1, + "name": ".Hiragino Sans GB Interface W3", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Hiragino Sans GB.ttc", + "index": 2, + "name": "Hiragino Sans GB", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Hiragino Sans GB.ttc", + "index": 2, + "name": "Hiragino Sans GB W6", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Hiragino Sans GB.ttc", + "index": 3, + "name": ".Hiragino Sans GB Interface", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Hiragino Sans GB.ttc", + "index": 3, + "name": ".Hiragino Sans GB Interface W6", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Trebuchet MS Bold Italic.ttf", + "index": 0, + "name": "Trebuchet MS", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXNonUniBol.otf", + "index": 0, + "name": "STIXNonUnicode", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-WideExtraBold.otf", + "index": 0, + "name": "Monaspace Xenon Wide ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideMediumItalic.otf", + "index": 0, + "name": "Monaspace Krypton Wide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-Medium.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-Medium.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/5f4c23e4a0c7b70597730d79e252955e973ead7d.asset/AssetData/BiauKai.ttc", + "index": 0, + "name": "BiauKaiHK", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/5f4c23e4a0c7b70597730d79e252955e973ead7d.asset/AssetData/BiauKai.ttc", + "index": 0, + "name": "BiauKaiHK Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/5f4c23e4a0c7b70597730d79e252955e973ead7d.asset/AssetData/BiauKai.ttc", + "index": 1, + "name": "BiauKaiTC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/5f4c23e4a0c7b70597730d79e252955e973ead7d.asset/AssetData/BiauKai.ttc", + "index": 1, + "name": "BiauKaiTC Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Kohinoor.ttc", + "index": 0, + "name": "Kohinoor Devanagari", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Kohinoor.ttc", + "index": 1, + "name": "Kohinoor Devanagari", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Kohinoor.ttc", + "index": 2, + "name": "Kohinoor Devanagari", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Kohinoor.ttc", + "index": 3, + "name": "Kohinoor Devanagari", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Kohinoor.ttc", + "index": 4, + "name": "Kohinoor Devanagari", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiBold.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-SemiBold.otf", + "index": 0, + "name": "Monaspace Neon SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Comic Sans MS.ttf", + "index": 0, + "name": "Comic Sans MS", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Xenon SemiWide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NF", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFont-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ExtraBold.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ExtraBold.ttf", + "index": 0, + "name": "Maple Mono NF CN ExtraBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Tahoma.ttf", + "index": 0, + "name": "Tahoma", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntUpSmBol.otf", + "index": 0, + "name": "STIXIntegralsUpSm", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideBold.otf", + "index": 0, + "name": "Monaspace Argon SemiWide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Radon SemiWide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Times New Roman Italic.ttf", + "index": 0, + "name": "Times New Roman", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansCypriot-Regular.ttf", + "index": 0, + "name": "Noto Sans Cypriot", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceNeon-WideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Neon Wide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Regular.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-Regular.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-Light.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoogleSansCodeNerdFontMono-Light.ttf", + "index": 0, + "name": "GoogleSansCode Nerd Font Mono Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideMedium.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-WideMedium.otf", + "index": 0, + "name": "Monaspace Radon Wide Medium", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideSemiBold.otf", + "index": 0, + "name": "Monaspace Argon SemiWide SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono NFM Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-MediumItalic.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono NF", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono NF SemiBold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFont-SemiBold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Telugu MN.ttc", + "index": 0, + "name": "Telugu MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Telugu MN.ttc", + "index": 1, + "name": "Telugu MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 0, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 0, + "name": "Noto Sans Armenian Blk", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 1, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 2, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 2, + "name": "Noto Sans Armenian ExtBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 3, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 200, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 3, + "name": "Noto Sans Armenian ExtLt", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 4, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 4, + "name": "Noto Sans Armenian Light", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 5, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 5, + "name": "Noto Sans Armenian Med", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 6, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 7, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 7, + "name": "Noto Sans Armenian SemBd", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 8, + "name": "Noto Sans Armenian", + "style": "normal", + "variant": "normal", + "weight": 100, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/NotoSansArmenian.ttc", + "index": 8, + "name": "Noto Sans Armenian Thin", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SuperClarendon.ttc", + "index": 0, + "name": "Superclarendon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SuperClarendon.ttc", + "index": 1, + "name": "Superclarendon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SuperClarendon.ttc", + "index": 2, + "name": "Superclarendon", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SuperClarendon.ttc", + "index": 3, + "name": "Superclarendon", + "style": "normal", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SuperClarendon.ttc", + "index": 4, + "name": "Superclarendon", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SuperClarendon.ttc", + "index": 5, + "name": "Superclarendon", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SuperClarendon.ttc", + "index": 6, + "name": "Superclarendon", + "style": "italic", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/SuperClarendon.ttc", + "index": 7, + "name": "Superclarendon", + "style": "normal", + "variant": "normal", + "weight": 900, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSyriac-Regular.ttf", + "index": 0, + "name": "Noto Sans Syriac", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFP", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontPropo-BoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Propo", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideBold.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-WideBold.otf", + "index": 0, + "name": "Monaspace Krypton Wide", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Arial Rounded Bold.ttf", + "index": 0, + "name": "Arial Rounded MT Bold", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/833e6cdde7e9b6be27aeb4bb26a2d25f93a6b1f7.asset/AssetData/PCmyoungjo.ttf", + "index": 0, + "name": "PCMyungjo", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansMasaramGondi-Regular.otf", + "index": 0, + "name": "Noto Sans Masaram Gondi", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/70875a1270987c17cfd6f40cd3d755ec04d03b33.asset/AssetData/Baoli.ttc", + "index": 0, + "name": "Baoli SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/70875a1270987c17cfd6f40cd3d755ec04d03b33.asset/AssetData/Baoli.ttc", + "index": 1, + "name": "Baoli TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/BigCaslon.ttf", + "index": 0, + "name": "Big Caslon", + "style": "normal", + "variant": "normal", + "weight": 500, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Savoye LET.ttc", + "index": 0, + "name": "Savoye LET", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Savoye LET.ttc", + "index": 1, + "name": ".Savoye LET CC.", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/GoMonoNerdFontMono-Italic.ttf", + "index": 0, + "name": "GoMono Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Bold.ttf", + "index": 0, + "name": "JetBrainsMono NFM", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNerdFontMono-Bold.ttf", + "index": 0, + "name": "JetBrainsMono Nerd Font Mono", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/6ca8b19114fa5b803af8c74eff3f7b75be41559a.asset/AssetData/BMDoHyeon-Regular.otf", + "index": 0, + "name": "BM Dohyeon", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/6ca8b19114fa5b803af8c74eff3f7b75be41559a.asset/AssetData/BMDoHyeon-Regular.otf", + "index": 0, + "name": "BM DoHyeon OTF", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Malayalam MN.ttc", + "index": 0, + "name": "Malayalam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Malayalam MN.ttc", + "index": 1, + "name": "Malayalam MN", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Monaco.ttf", + "index": 0, + "name": "Monaco", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a3c69464b629577766c23bcdb12ffbfe3759b923.asset/AssetData/Hanzipen.ttc", + "index": 0, + "name": "HanziPen SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a3c69464b629577766c23bcdb12ffbfe3759b923.asset/AssetData/Hanzipen.ttc", + "index": 1, + "name": "HanziPen TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a3c69464b629577766c23bcdb12ffbfe3759b923.asset/AssetData/Hanzipen.ttc", + "index": 2, + "name": "HanziPen SC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/a3c69464b629577766c23bcdb12ffbfe3759b923.asset/AssetData/Hanzipen.ttc", + "index": 3, + "name": "HanziPen TC", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-SemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Xenon SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Radon", + "style": "italic", + "variant": "normal", + "weight": 500, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceRadon-SemiWideMediumItalic.otf", + "index": 0, + "name": "Monaspace Radon SemiWide Medium", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Athelas.ttc", + "index": 0, + "name": "Athelas", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Athelas.ttc", + "index": 1, + "name": "Athelas", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Athelas.ttc", + "index": 2, + "name": "Athelas", + "style": "italic", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/Athelas.ttc", + "index": 3, + "name": "Athelas", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/NotoSansSamaritan-Regular.ttf", + "index": 0, + "name": "Noto Sans Samaritan", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceXenon-Italic.otf", + "index": 0, + "name": "Monaspace Xenon", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ExtraBoldItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MapleMono-NF-CN-ExtraBoldItalic.ttf", + "index": 0, + "name": "Maple Mono NF CN ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/PlantagenetCherokee.ttf", + "index": 0, + "name": "Plantagenet Cherokee", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-Italic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL NFM SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/JetBrainsMonoNLNerdFontMono-SemiBoldItalic.ttf", + "index": 0, + "name": "JetBrainsMonoNL Nerd Font Mono", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/Fonts/Supplemental/STIXIntUpDReg.otf", + "index": 0, + "name": "STIXIntegralsUpD", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-85-Bold.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/AlibabaPuHuiTi-2-85-Bold.ttf", + "index": 0, + "name": "Alibaba PuHuiTi 2.0 55 Regular", + "style": "normal", + "variant": "normal", + "weight": 700, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a4aca403fc9a901dcfe5e71131b423d71231eec.asset/AssetData/ToppanBunkyuGothicPr6N.ttc", + "index": 0, + "name": "Toppan Bunkyu Gothic", + "style": "normal", + "variant": "normal", + "weight": 600, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a4aca403fc9a901dcfe5e71131b423d71231eec.asset/AssetData/ToppanBunkyuGothicPr6N.ttc", + "index": 0, + "name": "Toppan Bunkyu Gothic Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a4aca403fc9a901dcfe5e71131b423d71231eec.asset/AssetData/ToppanBunkyuGothicPr6N.ttc", + "index": 1, + "name": "Toppan Bunkyu Gothic", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/System/Library/AssetsV2/com_apple_MobileAsset_Font8/7a4aca403fc9a901dcfe5e71131b423d71231eec.asset/AssetData/ToppanBunkyuGothicPr6N.ttc", + "index": 1, + "name": "Toppan Bunkyu Gothic Regular", + "style": "normal", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon", + "style": "italic", + "variant": "normal", + "weight": 800, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceArgon-SemiWideExtraBoldItalic.otf", + "index": 0, + "name": "Monaspace Argon SemiWide ExtraBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-LightItalic.otf", + "index": 0, + "name": "Victor Mono", + "style": "italic", + "variant": "normal", + "weight": 300, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/VictorMono-LightItalic.otf", + "index": 0, + "name": "Victor Mono Light", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "normal", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton", + "style": "italic", + "variant": "normal", + "weight": 600, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + }, + { + "fname": "/Users/peng/Library/Fonts/MonaspaceKrypton-SemiWideSemiBoldItalic.otf", + "index": 0, + "name": "Monaspace Krypton SemiWide SemiBold", + "style": "italic", + "variant": "normal", + "weight": 400, + "stretch": "expanded", + "size": "scalable", + "__class__": "FontEntry" + } + ], + "__class__": "FontManager" +} \ No newline at end of file diff --git a/README.md b/README.md index 64b6981..11155c6 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,12 @@ 统一框架:有界误差几何定位、主动选点、带覆盖证明的搜索、按真实动作耗时调度。 分析依据 `issue/B题.pdf`、附件1《模拟器使用说明》、附件2《通信接口说明及编程指南》。 +**文档总入口:[docs/README.md](docs/README.md)**(分类索引、阅读顺序与口径登记)。 + +- [总体思路与流程图(四问主线、端到端流程图、执行时间速查)](docs/总体思路与流程图.md) +- [执行时间与执行步骤(计时模型、状态机、附件示例推演、实测分解)](docs/执行时间与执行步骤.md) +- [几何计算示意图册(逐图说明:角域交会、覆盖、最小命中集)](docs/几何计算示意图册.md) +- [论文插图清单与复现方式](docs/figures/README.md)(`uv run python scripts/make_figures.py`) - [四问建模分析与 P0–P7 实施计划](docs/B题建模分析与实施计划.md) - [协议规则表、字段表与状态机(P0 交付)](docs/协议规则表与状态机.md) - [问题一完整解答](docs/问题一解答.md) @@ -35,7 +41,9 @@ tests/ # pytest(含解耦守卫:运行时零导入 referee + 规 project/ # 1-4 问"最优实现 / 基线实现"对比框架:逐问 optimal+baseline # +独立参考,冻结基准集配对出数;见 project/README.md scripts/ # 采集、基准、可视化与校核脚本(含问题四批量仿真 benchmark_q4.py、 - # 运行历史计时分解 analyze_run_timing.py、第四问覆盖证书 verify_q4_cover.py) + # 运行历史计时分解 analyze_run_timing.py、第四问覆盖证书 verify_q4_cover.py、 + # 论文插图 make_figures.py、日志归档 archive_replay_logs.py) +docs/figures/ # 论文插图(PNG)+ manifest.json(数据来源与 sha256)+ 图清单 output/ examples/ # 演练证据、算例与生成产物 ``` diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..0e8497e --- /dev/null +++ b/docs/README.md @@ -0,0 +1,71 @@ +# docs 索引 + +仓库文档分四类:**总览与流程**、**逐问算法**、**验证与对比**、**论文与插图**。 +阅读顺序建议按下面的表格从上到下。 + +## 总览与流程 + +| 文档 | 内容 | +| --- | --- | +| [`总体思路与流程图.md`](总体思路与流程图.md) | 四问主线、端到端流程图(mermaid)、执行步骤与执行时间速查、交付物与验收锚点 | +| [`执行时间与执行步骤.md`](执行时间与执行步骤.md) | 计时模型、会话状态机与动作回合、附件示例逐步推演、实测日志分解、时间预算与安全阀 | +| [`B题建模分析与实施计划.md`](B题建模分析与实施计划.md) | 四问建模取舍与 P0–P7 实施计划(最早的设计文档) | +| [`协议规则表与状态机.md`](协议规则表与状态机.md) | 指令字段表、结果码、计时模型、状态机(P0 交付) | + +## 逐问算法 + +| 文档 | 内容 | +| --- | --- | +| [`algo-1.md`](algo-1.md) | 问题一实现口径:半平面交、顶点对直径、直径圆充要判定、MEC 清除证书 | +| [`问题一解答.md`](问题一解答.md) | 问题一论文式解答:模型边界、算法可复现步骤、反例构造、演练验证 | +| [`algo-2.md`](algo-2.md) | 问题二:候选集 K1、保证接收盘、安全盘 B(c, 1000−a)、最坏后验选点 | +| [`algo-3.md`](algo-3.md) | 问题三:三层在线架构、七点解析覆盖、覆盖账本、任务调度与停止条件 | +| [`algo-3-bayes.md`](algo-3-bayes.md) | 问题三 `bayes` 策略:网格幸存集滤波、信息增益选点、动态 TSP、Optuna 调参 | +| [`algo-4.md`](algo-4.md) | 问题四:`forward_half_disk` 最小命中集、位置×朝向联合信念、后备盲清 | + +## 优化与验证 + +| 文档 | 内容 | +| --- | --- | +| [`第三四问架构优化与运行提速方案.md`](第三四问架构优化与运行提速方案.md) | 运行历史复核、分层目标架构、P0–P2 优化项与实施路线 | +| [`第三四问图论与动态规划优化方案.md`](第三四问图论与动态规划优化方案.md) | 图论/DP 引入方案与实测回填(含未采用的改动与原因) | +| [`算法审核与优化-20260911.md`](算法审核与优化-20260911.md) | 一次外部口径的算法审核记录与结论 | +| [`最优与基线实现对比.md`](最优与基线实现对比.md) | 1–4 问「最优实现 / 基线实现」对比框架与结果(论文口径说明) | +| [`B题问题3-4相关论文列表.md`](B题问题3-4相关论文列表.md) | 题 3、4 相关文献清单 | + +## 论文与插图 + +| 路径 | 内容 | +| --- | --- | +| [`paper/main.tex`](paper/main.tex) | 论文正文(`latexmk -xelatex main.tex`) | +| [`paper/README.md`](paper/README.md) | 论文编译方式、目录结构与待办标记 | +| [`figures/README.md`](figures/README.md) | 插图清单、配色与字体约定、数据来源与复现命令 | +| [`figures/manifest.json`](figures/manifest.json) | 每张图的数据来源与 sha256、生成命令 | +| [`../project/README.md`](../project/README.md) | 对比框架目录结构与运行方式 | + +## 口径登记 + +同一事实在多份文档中出现时,以下列来源为准;发现不一致请先改文档,再复核图。 + +| 事实 | 权威来源 | +| --- | --- | +| 题面常量(Ω、速度、各动作耗时、源与频道范围) | `src/mcm26b/config.py`(带 `[题面]` / `[工程]` 标注) | +| 指令字段与结果码 | `src/mcm26b/protocol/rules.py` + [`协议规则表与状态机.md`](协议规则表与状态机.md) | +| 问题一数值(D、ρ、E) | `mcm26b.geometry.solve` 的返回,或 [`问题一解答.md`](问题一解答.md) | +| 覆盖计划与证书 | `src/mcm26b/guarantee/plans/*.json`(`q4_mincover_v2.json` 为默认) | +| 实测虚拟时间 | 行为日志 `virtual_time_s` 字段与 `evaluation.recompute_virtual_time` | +| 冻结基准集对比结果 | `project/results/*.md`(由 `uv run python -m project.run` 生成) | + +已知的两处需要随环境更新的引用: + +1. [`问题一解答.md`](问题一解答.md) 引用的 `output/q1/figures/*.png` 属于早期 + 离线插图(`output/` 未入库);现行插图在 [`figures/`](figures/README.md)。 +2. 多份文档提到的官方演练报告位于 `output/q3/practice/`、`output/q4/`, + 同样未入库;需要时用 `scripts/verify_q3_practice.py` 对留档目录复算。 + +## 写作约定 + +- 只写结论与依据,不使用比喻、排比与自评式措辞(例如「唯一权威」「关键洞察」)。 +- 数字必须能在代码或数据中找到出处;图内不放标题与解释段落, + 说明写在正文,图名与清单见 [`figures/README.md`](figures/README.md)。 +- 中文引号统一使用「」,避免与代码中的 ASCII 引号混淆。 diff --git a/docs/figures/README.md b/docs/figures/README.md new file mode 100644 index 0000000..7bc435a --- /dev/null +++ b/docs/figures/README.md @@ -0,0 +1,62 @@ +# docs/figures —— 论文插图 + +每张图只输出 PNG,由 `scripts/make_figures.py` 用 matplotlib 生成。 +`manifest.json` 记录每张图的数据来源(路径 + sha256 前 12 位 + 行数)与生成命令。 + +```bash +uv run python scripts/make_figures.py # 全部 11 张 +uv run python scripts/make_figures.py --list # 图名 +uv run python scripts/make_figures.py --only geo-q3-seven-point-coverage +uv run python scripts/make_figures.py --scale 1.5 # 整体放大(尺寸倍率) +``` + +依赖:`matplotlib`、`Pillow`、`docs/paper/fonts/` 下的字体。 +`matplotlib` 缓存写入仓库内 `.mpl-cache/`,不污染用户目录。 + +## 约定 + +- 图内不放标题、图注与解释性文字,只保留坐标轴、图例与数据标注; + 图的含义由文件名与下表承担,解释写在论文正文。 +- 配色(`scripts/make_figures.py::C`):深蓝 `#1f4e79` 主流程与协议, + 砖红 `#b03a2e` 真值源与关键结论,墨绿 `#1e7a5f` 清除与通过项, + 土黄 `#b8860b` 后备与警示,灰色只用于网格与次要文字。 +- 字体:中文宋体 `SongtiSC-Regular/Bold`,标题黑体 `HeitiSC-Light/Medium`, + 数字与西文 Times New Roman,均取自 `docs/paper/fonts/`,与 `main.tex` 一致。 +- 输出为 PNG(`savefig.dpi = 200`,另有 `--scale` 倍率),按 160 mm 宽排版时 + 与正文同字号。 + +## 图清单 + +| 文件 | 内容 | 数据来源 | +| --- | --- | --- | +| `flow-overall-architecture.png` | 总体思路:题面抽象、在线三层、四问主线、三条闭环 | `src/mcm26b/config.py`、`docs/B题建模分析与实施计划.md` | +| `steps-state-machine.png` | 会话状态机(IDLE / 倒计时 / OPEN / CLOSED) | `docs/协议规则表与状态机.md`、`src/mcm26b/protocol/client.py` | +| `timing-attachment-example-105-111-194-199.png` | 附件计时示例逐步推演 | `docs/协议规则表与状态机.md` | +| `timing-measured-q3-10-sources.png` | 实测一局的虚拟时间分解(累计曲线 + 构成) | `referee-data/sessions/BBM9-HZG2-77N5-NKKC/log.jsonl` | +| `geo-q1-convex-intersection-zoom.png` | 问题一:角域交会总览 + 定位区域放大(直径圆与 MEC) | `output/q1/practice/U5ZW-P9KN-TCAG-R7ST_observations.json` | +| `geo-q1-diameter-circle-counterexample.png` | 问题一:直径圆不覆盖的反例(等边三角形布站) | `examples/q1/triangle.json` | +| `geo-q2-guaranteed-reception-disk.png` | 问题二:候选盘、截断角域外接圆、安全盘 `B(c, 1000−a)` | `src/mcm26b/config.py`、`docs/algo-2.md` | +| `geo-q3-seven-point-coverage.png` | 问题三:七点覆盖(7 个 1000 m 接收盘的并集覆盖 Ω)与三套计划对比 | `src/mcm26b/planner/seven.py`、`docs/algo-3.md` | +| `geo-q4-minimum-cover-31-points.png` | 问题四:31 点最小命中集与 `forward_half_disk` 语义 | `src/mcm26b/guarantee/plans/q4_mincover_v2.json` | +| `replay-webui-q3-omnidirectional.png` | WebUI 回放画布复现(全向局,10 源全清) | `referee-data/sessions/BBM9-HZG2-77N5-NKKC/log.jsonl` | +| `replay-webui-q4-directional.png` | WebUI 回放画布复现(定向源局) | `referee-data/sessions/GM56-DFXZ-XKDM-XYV7/log.jsonl` | + +后两张对应 WebUI 的预览功能:把回放器画布上的 Ω 与真值源、运动轨迹、 +检测示向度射线、清除标记,以及右侧事件流水与底部虚拟时间轴一起导出。 + +## 数据来源与复现 + +- `timing-measured-*`、`replay-webui-*` 读评测机行为日志(JSONL,含真值)。 + `referee-data/` 被 `.gitignore` 忽略,因此另归档两局到 `examples/replay/`; + 没有评测机数据时脚本自动改读归档,图一致。 + + ```bash + uv run python scripts/archive_replay_logs.py --list # 本机有哪些局 + uv run python scripts/archive_replay_logs.py <案例编码> # 追加归档 + ``` + +- `geo-q1-convex-intersection-zoom.png` 读官方演练留档 + `output/q1/practice/*_observations.json`(同样被忽略)。文件缺失时改读 + `examples/q1/triangle.json` 反例算例,图仍可用,只是案例不同。 +- 问题一的几何量由生产求解器 `mcm26b.geometry.solve` 现算; + 问题三、问题四直接读覆盖计划与证书,不手抄数字。 diff --git a/docs/figures/flow-overall-architecture.png b/docs/figures/flow-overall-architecture.png new file mode 100644 index 0000000..be9c164 Binary files /dev/null and b/docs/figures/flow-overall-architecture.png differ diff --git a/docs/figures/geo-q1-convex-intersection-zoom.png b/docs/figures/geo-q1-convex-intersection-zoom.png new file mode 100644 index 0000000..a2ad12e Binary files /dev/null and b/docs/figures/geo-q1-convex-intersection-zoom.png differ diff --git a/docs/figures/geo-q1-diameter-circle-counterexample.png b/docs/figures/geo-q1-diameter-circle-counterexample.png new file mode 100644 index 0000000..5a6d05e Binary files /dev/null and b/docs/figures/geo-q1-diameter-circle-counterexample.png differ diff --git a/docs/figures/geo-q2-guaranteed-reception-disk.png b/docs/figures/geo-q2-guaranteed-reception-disk.png new file mode 100644 index 0000000..9fb885f Binary files /dev/null and b/docs/figures/geo-q2-guaranteed-reception-disk.png differ diff --git a/docs/figures/geo-q3-seven-point-coverage.png b/docs/figures/geo-q3-seven-point-coverage.png new file mode 100644 index 0000000..8e9bc37 Binary files /dev/null and b/docs/figures/geo-q3-seven-point-coverage.png differ diff --git a/docs/figures/geo-q4-minimum-cover-31-points.png b/docs/figures/geo-q4-minimum-cover-31-points.png new file mode 100644 index 0000000..27cdaee Binary files /dev/null and b/docs/figures/geo-q4-minimum-cover-31-points.png differ diff --git a/docs/figures/manifest.json b/docs/figures/manifest.json new file mode 100644 index 0000000..e04e598 --- /dev/null +++ b/docs/figures/manifest.json @@ -0,0 +1,192 @@ +{ + "generator": "scripts/make_figures.py", + "command": "uv run python scripts/make_figures.py", + "palette": { + "ink": "#1c2430", + "muted": "#5c6673", + "grid": "#e4e9ee", + "primary": "#1f4e79", + "primary_fill": "#dce6f1", + "accent": "#b03a2e", + "accent_fill": "#f6dcd8", + "success": "#1e7a5f", + "success_fill": "#d8ece5", + "warn": "#b8860b", + "warn_fill": "#f6ecd2", + "violet": "#5b4b8a" + }, + "fonts": { + "dir": "docs/paper/fonts", + "map": { + "song": "SongtiSC-Regular.ttf", + "song_bold": "SongtiSC-Bold.ttf", + "hei": "HeitiSC-Light.ttf", + "hei_bold": "HeitiSC-Medium.ttf", + "times": "Times New Roman.ttf", + "times_bold": "Times New Roman Bold.ttf" + } + }, + "figures": [ + { + "stem": "flow-overall-architecture", + "png": "docs/figures/flow-overall-architecture.png", + "scale": 1.0, + "sources": [ + { + "path": "src/mcm26b/config.py", + "sha256_12": "c513450dc892", + "lines": 213 + }, + { + "path": "docs/B题建模分析与实施计划.md", + "sha256_12": "537aaa5790f3", + "lines": 237 + } + ] + }, + { + "stem": "steps-state-machine", + "png": "docs/figures/steps-state-machine.png", + "scale": 1.0, + "sources": [ + { + "path": "docs/协议规则表与状态机.md", + "sha256_12": "27c8f7051b26", + "lines": 215 + }, + { + "path": "src/mcm26b/protocol/client.py", + "sha256_12": "0e9797a85cd7", + "lines": 333 + } + ] + }, + { + "stem": "timing-attachment-example-105-111-194-199", + "png": "docs/figures/timing-attachment-example-105-111-194-199.png", + "scale": 1.0, + "sources": [ + { + "path": "docs/协议规则表与状态机.md", + "sha256_12": "27c8f7051b26", + "lines": 215 + } + ] + }, + { + "stem": "geo-q1-convex-intersection-zoom", + "png": "docs/figures/geo-q1-convex-intersection-zoom.png", + "scale": 1.0, + "sources": [ + { + "path": "output/q1/practice/U5ZW-P9KN-TCAG-R7ST_observations.json", + "sha256_12": "d2cba13464fd", + "lines": 87 + } + ] + }, + { + "stem": "geo-q1-diameter-circle-counterexample", + "png": "docs/figures/geo-q1-diameter-circle-counterexample.png", + "scale": 1.0, + "sources": [ + { + "path": "examples/q1/triangle.json", + "sha256_12": "eeb0c92ae21c", + "lines": 29 + } + ] + }, + { + "stem": "geo-q2-guaranteed-reception-disk", + "png": "docs/figures/geo-q2-guaranteed-reception-disk.png", + "scale": 1.0, + "sources": [ + { + "path": "src/mcm26b/config.py", + "sha256_12": "c513450dc892", + "lines": 213 + }, + { + "path": "docs/algo-2.md", + "sha256_12": "24f3e844deb9", + "lines": 312 + } + ] + }, + { + "stem": "geo-q3-seven-point-coverage", + "png": "docs/figures/geo-q3-seven-point-coverage.png", + "scale": 1.0, + "sources": [ + { + "path": "src/mcm26b/planner/seven.py", + "sha256_12": "6ac65bd483f8", + "lines": 113 + }, + { + "path": "docs/algo-3.md", + "sha256_12": "5638192b8669", + "lines": 456 + } + ] + }, + { + "stem": "geo-q4-minimum-cover-31-points", + "png": "docs/figures/geo-q4-minimum-cover-31-points.png", + "scale": 1.0, + "sources": [ + { + "path": "src/mcm26b/guarantee/plans/q4_mincover_v2.json", + "sha256_12": "71e54616ae21", + "lines": 162 + }, + { + "path": "docs/algo-4.md", + "sha256_12": "1774f8bf85db", + "lines": 485 + } + ] + }, + { + "stem": "timing-measured-q3-10-sources", + "png": "docs/figures/timing-measured-q3-10-sources.png", + "scale": 1.0, + "sources": [ + { + "path": "referee-data/sessions/BBM9-HZG2-77N5-NKKC/log.jsonl", + "sha256_12": "5a308e53ed09", + "lines": 133, + "case_code": "BBM9-HZG2-77N5-NKKC", + "module": "q3_practice" + } + ] + }, + { + "stem": "replay-webui-q3-omnidirectional", + "png": "docs/figures/replay-webui-q3-omnidirectional.png", + "scale": 1.0, + "sources": [ + { + "path": "referee-data/sessions/BBM9-HZG2-77N5-NKKC/log.jsonl", + "sha256_12": "5a308e53ed09", + "lines": 133, + "case_code": "BBM9-HZG2-77N5-NKKC" + } + ] + }, + { + "stem": "replay-webui-q4-directional", + "png": "docs/figures/replay-webui-q4-directional.png", + "scale": 1.0, + "sources": [ + { + "path": "referee-data/sessions/GM56-DFXZ-XKDM-XYV7/log.jsonl", + "sha256_12": "f498b2073cdf", + "lines": 421, + "case_code": "GM56-DFXZ-XKDM-XYV7" + } + ] + } + ] +} diff --git a/docs/figures/replay-webui-q3-omnidirectional.png b/docs/figures/replay-webui-q3-omnidirectional.png new file mode 100644 index 0000000..57c53dc Binary files /dev/null and b/docs/figures/replay-webui-q3-omnidirectional.png differ diff --git a/docs/figures/replay-webui-q4-directional.png b/docs/figures/replay-webui-q4-directional.png new file mode 100644 index 0000000..22c7876 Binary files /dev/null and b/docs/figures/replay-webui-q4-directional.png differ diff --git a/docs/figures/steps-state-machine.png b/docs/figures/steps-state-machine.png new file mode 100644 index 0000000..1a04ddd Binary files /dev/null and b/docs/figures/steps-state-machine.png differ diff --git a/docs/figures/timing-attachment-example-105-111-194-199.png b/docs/figures/timing-attachment-example-105-111-194-199.png new file mode 100644 index 0000000..d201426 Binary files /dev/null and b/docs/figures/timing-attachment-example-105-111-194-199.png differ diff --git a/docs/figures/timing-measured-q3-10-sources.png b/docs/figures/timing-measured-q3-10-sources.png new file mode 100644 index 0000000..decb079 Binary files /dev/null and b/docs/figures/timing-measured-q3-10-sources.png differ diff --git a/docs/几何计算示意图册.md b/docs/几何计算示意图册.md new file mode 100644 index 0000000..d9cd843 --- /dev/null +++ b/docs/几何计算示意图册.md @@ -0,0 +1,208 @@ +# 几何计算示意图册 + +> 本册逐图给出坐标口径、关键量与图中各元素的含义。插图位于 [`figures/`](figures/),复现命令: +> +> ```bash +> uv run python scripts/make_figures.py --only geo-q1-convex-intersection-zoom,\ +> geo-q1-diameter-circle-counterexample,geo-q2-guaranteed-reception-disk,\ +> geo-q3-seven-point-coverage,geo-q4-minimum-cover-31-points +> ``` +> +> 图中的数字由脚本现算:问题一调用生产求解器,问题三、四直接读覆盖计划与证书; +> 来源与 sha256 记在 [`figures/manifest.json`](figures/manifest.json)。 + +统一的坐标与符号约定: + +- 世界坐标以 Ω 圆心为原点,$x$ 轴向右、$y$ 轴向上,单位**米**; +- Ω 是半径 $R=1800$ m 的圆盘;源的有效接收半径 $r_{\rm eff}\in[1000,1500]$ m; +- 示向度 $\theta$ 以 $+x$ 轴为 $0°$ 逆时针为正,误差半角 $\delta=1°$; +- 清除半径 $r_{\rm clear}=20$ m; +- "可保证清除" ⟺ 存在一点使整个候选区域落在该点 20 m 内 ⟺ $\rho\le 20$ m(充分)。 + +--- + +## 图 1 问题一:角域交会与定位区域 + +![问题一角域交会](figures/geo-q1-convex-intersection-zoom.png) + +**左(总览)**:三个检测点(官方演练案例 `U5ZW-P9KN-TCAG-R7ST`,频道 9) +各自的**前向角域** $W_i=\{p:\angle(p-s_i)-\theta_i\in[-1°,+1°]\}$ 画成窄扇形 +(2° 宽,图中放大成可见宽度);三者交集就是定位区域 $P$。检测点相距 600~900 m, +而 $P$ 的直径只有 24 m,所以左图里 $P$ 缩成一个点——这是**必须做局部放大**的原因。 + +**右(放大,视野 ±31.4 m)**:以最小包围圆圆心为中心: + +- 浅蓝扇形 = 三个角域在放大框内的可见部分;三者**重叠成白色区域**= $P$; +- 红色实线多边形 = $P$ 的顶点边界(与左图同一个集合); +- 蓝色虚线圆 = **直径圆**,半径 $D/2=11.9984$ m,圆心是中点 $(-450.634,\ 508.944)$; +- 绿色实线圆 = **最小包围圆(MEC)**,$\rho=12.0686$ m,圆心 $(-449.977,\ 507.953)$。 + +**关键量(图 (c) 栏)** + +| 量 | 值 | 判定 | +| --- | ---: | --- | +| 直径 $D(P)$ | 23.9967 m | 顶点对枚举(凸集上最远点必为顶点) | +| MEC 半径 $\rho$ | 12.0686 m | Welzl 算法 + 支撑点枚举对照 | +| 直径圆最大超出 $E$ | +0.6040 m | $E>0$ ⇒ **直径圆不覆盖** $P$ | +| $\rho\le20$ m | 成立 | ⇒ **存在可保证清除的点**(取 MEC 圆心) | + +> 这两个结论不矛盾:题目问"直径圆能否覆盖"(答案:不能,$E>0$) +> 与"能否保证清除"(答案:能,$\rho\le20$ m)是**两个不同的问题**。 +> $E$ 的定义:$E=\max_i\lVert v_i-o\rVert-D/2$,$o$ 为直径中点; +> 精确算术下最远顶点对就在圆周上,故 $E\ge0$,$E>0$ 即覆盖失败, +> 达到最大值的顶点就是可独立复核的失败证据。 + +--- + +## 图 2 问题一:直径圆不覆盖的反例 + +![直径圆反例](figures/geo-q1-diameter-circle-counterexample.png) + +等边三角形布站($S_1(-1000,0)$、$S_2(540,-866)$、$S_3(520,901)$,示向度 +$1°,121°,241°$,误差半角 $1°$)。三条 2° 宽的角域交出一个**等边三角形** +$P$:顶点 $(0,0)$、$(40,0)$、$(20,34.641)$。 + +- 直径 $D=40.0000$ m,最远点对是底边两端 ⇒ 直径圆圆心 $(20,0)$、半径 20 m; +- 到第三个顶点 $(20,34.641)$ 的距离是 $20\sqrt3\approx34.6410$ m > 20 m, + 故**直径圆不覆盖**:$E=+14.6410$ m(图中箭头所指); +- 该反例的最小包围圆半径 $\rho=40/\sqrt3\approx23.0940$ m **> 20 m**, + 属于"覆盖失败且无法保证清除"的更坏情形。 + +> 反例是**符合题设测向条件**的:把真实源放在三角形中心 $(20,20\sqrt3/3)$, +> 三个检测点的真实方位与读数偏差均小于 $1°$,且三个检测距离都小于 1500 m, +> 所以它不是"脱离测向模型的任意图形"。构造与证明见 +> [`问题一解答.md`](问题一解答.md) 第六节。 + +--- + +## 图 3 问题二:保证接收的候选盘与安全盘 + +![问题二保证接收盘](figures/geo-q2-guaranteed-reception-disk.png) + +**候选集**(首次观测之后可能的位置集合): + +$$ +K_1=\Omega\ \cap\ W(s_1,\theta_1\pm\delta)\ \cap\ B(s_1,\ 1500), +$$ + +即"Omega 内、首次角域内、且距离不超过最大接收半径"的三者之交。 + +**解析安全盘**:截断角域(扇形,半径 $R_{\max}=1500$ m、半角 $\delta=1°$) +的最小包围圆恰为 $B(c,a)$,其中 $c=s_1+a\boldsymbol u$($\boldsymbol u$ 为示向度单位向量), + +$$ +a=\frac{R_{\max}}{2\cos\delta}=\frac{1500}{2\cos1°}=750.1142\ \text{m}. +$$ + +于是对安全盘内任一点 $q$、扇形内任一点 $p$: + +$$ +\lVert q-p\rVert\le a+(1000-a)=1000\ \text{m} +\ \Longrightarrow\ q\ \text{必然收到源的信号}, +$$ + +$$ +\boxed{\ \text{安全盘半径}=1000-a=249.8858\ \text{m}\ } +$$ + +(严格非空;图中绿色实心圆,圆心 $c=(649.62,\ 375.06)$)。 +第二检测点就在该盘内选,目标是**最小化最坏保守后验包围半径**, +移动与检测成本作次目标;交会角只用于同分筛选与可解释性说明。 + +> 图中 $a$ 与 1000 m 两个圆几乎重合是可预期的:$\delta$ 只有 $1°$, +> $a=R_{\max}/(2\cos\delta)$ 与 $R_{\max}/2$ 相差 0.0114%, +> 因此**安全盘的"安全"主要来自角域约束,而不是圆心位置**。 + +--- + +## 图 4 问题三:七点解析覆盖 + +![问题三七点覆盖](figures/geo-q3-seven-point-coverage.png) + +**站点集**:原点 + 半径 $a$ 的六等分环, +$S(a)=\{(0,0)\}\cup\{a(\cos k\pi/3,\ \sin k\pi/3):k=0,\dots,5\}$。 + +**定理(`algo-3.md` §4.2)** 当 $0 **本轮修复的正确性缺陷**:旧版 `no_signal` 的朝向裁剪规则反向、且漏计格内角裕量, +> 会删掉真源所在的朝向档。已修复,并由 +> `tests/test_joint_belief.py` 的随机观测序列保留性测试固化。 + +--- + +## 附:把图接进论文 + +`docs/paper/main.tex` 目前用表格承载结论,插图按下例插入即可: + +```latex +\begin{figure}[htbp] + \centering + \includegraphics[width=0.95\textwidth]{figures/geo-q1-convex-intersection-zoom.png} + \caption{问题一:角域交会得到的定位区域,以及直径圆与最小包围圆的关系。} + \label{fig:geo-q1} +\end{figure} +``` + +图片按 160 mm 宽排版。图内不含标题与图注,说明写在 `\caption` 与正文。 diff --git a/docs/总体思路与流程图.md b/docs/总体思路与流程图.md new file mode 100644 index 0000000..bd203e1 --- /dev/null +++ b/docs/总体思路与流程图.md @@ -0,0 +1,178 @@ +# 总体思路与流程图 + +> 插图:[`figures/flow-overall-architecture.png`](figures/flow-overall-architecture.png)(总体思路与算法主线)、 +> [`figures/steps-state-machine.png`](figures/steps-state-machine.png)(执行步骤)、 +> [`figures/timing-attachment-example-105-111-194-199.png`](figures/timing-attachment-example-105-111-194-199.png)(附件计时示例)。 +> 复现:`uv run python scripts/make_figures.py --only flow-overall-architecture,steps-state-machine,timing-attachment-example-105-111-194-199` + +本文给出四问的思路、端到端流程图、执行步骤与执行时间。 +算法细节指向 [`algo-1.md`](algo-1.md)~[`algo-4.md`](algo-4.md), +协议细节指向 [`协议规则表与状态机.md`](协议规则表与状态机.md)。 + +--- + +## 1. 主线 + +把题面约束写成可计算的几何集合和计时账本,四问共用一套「证据 — 决策 — 执行」结构, +每问都给出可验证的保证: + +| 问 | 保证 | +| --- | --- | +| 1 | 直径由顶点对枚举给出;最小包围圆半径 $\rho\le20$ m 时存在可保证清除的点 | +| 2 | 第二检测点取在解析安全盘 $B(c,1000-a)$(半径 249.8858 m)内,必然收到信号 | +| 3 | 七点计划覆盖整个 Ω(解析上界 984.5391 m < 1000 m),据此可判定频道无源 | +| 4 | 31 点最小命中集在 15 m / 72 朝向档证书下缺口为 0 | + +![总体思路与算法主线](figures/flow-overall-architecture.png) + +--- + +## 2. 四层结构 + +| 层 | 内容 | 作用 | +| --- | --- | --- | +| L0 题面抽象 | Ω 半径 1800 m;移动 5 m/s、检测 5 s、换频 1 s、清除 5 s / 3 s;观测 `direction/no_signal/near`;源 10~16 个,频道 1~20,定向源覆盖 ±90° | 后续推导只用这些量,不引入题面之外的信息 | +| L1 在线三层 | 证据层(候选集与粒子)、决策层(选点与任务表)、执行层(串行客户端) | 依赖单向向下,几何结论与调度启发式可分别测试 | +| L2 四问 | Q1 定位解算 → Q2 第二点选择 → Q3 全向搜索 → Q4 混合定向 | 后一问复用前一问的内核 | +| L3 三条闭环 | 发现、定位、清除 | 每环有明确的进入与退出条件 | + +L0 的常量集中在 `src/mcm26b/config.py`,带 `[题面]` / `[工程]` 标注。 +证据层只给出「可能在哪里」,决策层只读证据并产出动作, +执行层负责发送动作并维护虚拟时钟。 + +--- + +## 3. 四问思路 + +### 问题一 + +1. 检测点 $s_i$ 与示向度 $\theta_i$ 给出前向角域 + $W_i=\{p:\angle(p-s_i)-\theta_i\in[-1°,+1°]\}$,定位区域是半平面交 $P=\bigcap_i W_i$; +2. 直径 $D(P)=\max_{i,j}\lVert v_i-v_j\rVert$ 只需枚举顶点对(凸集上最远点必为顶点); +3. 直径圆能否覆盖 $P$:唯一候选圆心是最远顶点对的中点。若 $a,b$ 同在该圆内, + 三角不等式两处同时取等,圆心只能是 $ab$ 中点,因此只需在该点检查全部顶点; +4. 能否保证清除:最小包围圆半径 $\rho\le20$ m 时,停在 MEC 圆心即可清除。 + 这是充分条件,不是必要条件。 + +结论:直径圆不一定覆盖定位区域,见 [`geo-q1-counterexample.png`](figures/geo-q1-diameter-circle-counterexample.png); +官方演练案例是「覆盖失败但 $\rho=12.07$ m $\le20$ m,可保证清除」。 + +### 问题二 + +候选集 $K_1=\Omega\cap W(s_1,\theta_1\pm\delta)\cap B(s_1,1500)$。 +截断角域(扇形)的最小包围圆为 $B(c,a)$,$a=R_{\max}/(2\cos\delta)=750.1142$ m, +故安全盘 $B(c,1000-a)$ 的半径为 249.8858 m,盘内任一点到扇形内任一点的距离 +不超过 1000 m,即必然收到信号。在该盘内以最坏保守后验包围半径为主目标选点, +移动与检测成本作次目标,交会角只用于同分筛选。详见 [`algo-2.md`](algo-2.md)。 + +### 问题三 + +发现保证用七点计划(原点 + 半径 $a=1159.7$ m 的六等分环):解析上界 +$D(a)=\max\{a/\sqrt3,\ \sqrt{R^2+a^2-\sqrt3Ra}\}=984.5391$ m < 1000 m, +Ω 内任意位置的源都在某站点 1000 m 内。证据层按频道维护候选集与粒子幸存集, +负观测按 `full_disk` 语义排除 1000 m 圆盘;决策层用信息增益选点, +任务表包含检测、定位、清除三类任务,排序为开放路径问题; +所有频道销账即完成证明成立,立即 `/exit`。 + +### 问题四 + +定向源只向朝向 ±90° 的前向半球辐射,覆盖语义改为 `forward_half_disk`。 +七点在该语义下有缺口,改用离线贪心得到的 31 点最小命中集(设计半径 965 m, +前向角裕量 5°),并以 15 m / 72 朝向档的运行期证书校核(325.62 万个采样格,缺口 0, +最坏命中 990.05 m)。负观测只约束朝向,因此维护位置 × 朝向联合信念, +信念坍缩到有限格时使用后备盲清。详见 [`algo-4.md`](algo-4.md)。 + +--- + +## 4. 端到端流程 + +```mermaid +flowchart TD + S([开始:/enter 成功
现实预算 1200 s 起算]) --> P0[读配置 ProblemConfig] + P0 --> PLAN{按问题选择覆盖计划} + PLAN -->|问题 3| S7[七点全向计划
解析上界 984.54 m] + PLAN -->|问题 4| S31[31 点最小命中集
forward_half_disk 证书] + S7 --> LOOP + S31 --> LOOP + + subgraph LOOP[主循环:动作回合] + direction TB + NEXT[选下一个任务
信息增益 / 最坏后验半径
滚动 2-opt 排序] --> SEND[/发送动作/] + SEND --> RESP{accepted?} + RESP -->|false| FIX[不更新状态
记录并重排任务] + RESP -->|true| CLK[更新虚拟时钟、位置、频道] + FIX --> NEXT + CLK --> OBS{观测类型} + OBS -->|direction| HIT[登记新源
同频道安排第二点交会] + OBS -->|no_signal| NEG[负观测裁剪
位置候选或朝向档] + OBS -->|near| SKIP[距离过近,换点重测] + HIT --> DONE{该频道 ρ ≤ 20 m?} + NEG --> DONE + SKIP --> DONE + DONE -->|是| CLR[/清除动作/] + DONE -->|否| NEXT + CLR --> LEDGER[覆盖账本销账] + LEDGER --> FIN{全部频道销账?} + FIN -->|否| NEXT + end + + FIN -->|是| EXITQ[完成证明成立,立即 /exit] + EXITQ --> REP[日志复算与统计] + REP --> END([结束:虚拟时间即成绩]) + + classDef main fill:#dce6f1,stroke:#1f4e79,color:#1c2430 + classDef acc fill:#f6dcd8,stroke:#b03a2e,color:#1c2430 + classDef ok fill:#d8ece5,stroke:#1e7a5f,color:#1c2430 + class NEXT,SEND,RESP,CLK,OBS main + class CLR,FIN,EXITQ acc + class LEDGER,REP ok +``` + +会话状态机与单次动作回合见 [`figures/steps-state-machine.png`](figures/steps-state-machine.png), +逐步计时示例见 [`figures/timing-attachment-example-105-111-194-199.png`](figures/timing-attachment-example-105-111-194-199.png)。 + +--- + +## 5. 执行步骤与执行时间 + +一次动作回合:本地预校验 → 发送 → 等响应计时 → 按响应更新状态。 +异常时同 `request_id` 同内容重发,400 与 409 立即失败。 + +| 动作 | 虚拟耗时 | 说明 | +| --- | --- | --- | +| `/enter`、`/exit` | 0 s | 不改变虚拟时刻,`/exit` 不切频道 | +| 移动 | 直线距离 / 5 m·s⁻¹ | 同点不动为 0 s | +| 换测向频道 | 1 s | 仅 `/measure` 触发,`/clear` 不切换 | +| 检测 `/measure` | 5 s | 与返回结果无关 | +| 清除 `/clear` | 5 s / 3 s | 成功 5 s,未发现 3 s | + +实测样例(评测机日志 `BBM9-HZG2-77N5-NKKC`,问题三演练,10 源全清): + +| 项 | 数值 | +| --- | --- | +| 总虚拟时间 | 3134.643 s | +| 移动(里程 11.9 km) | 2379.6 s | +| 检测与清除动作(119 + 10 次) | 645.0 s | +| 换频(110 次) | 110.0 s | +| 现实耗时 | 1.889 s | + +三项之和等于响应中的 `virtual_time_s`,与 `evaluation.recompute_virtual_time` 口径一致。 +分解图见 [`figures/timing-measured-q3-10-sources.png`](figures/timing-measured-q3-10-sources.png), +定向局(`GM56-…`,虚拟 8703.766 s,现实 3.397 s)与复现命令见 +[`执行时间与执行步骤.md`](执行时间与执行步骤.md)。 + +--- + +## 6. 交付物与验收锚点 + +| 问 | 算法文档 | 主要实现 | 锚点 | +| --- | --- | --- | --- | +| 1 | [`algo-1.md`](algo-1.md)、[`问题一解答.md`](问题一解答.md) | `src/mcm26b/geometry/` | 演练复算 $D=23.9967$ m、$\rho=12.0686$ m、$E=+0.6040$ m | +| 2 | [`algo-2.md`](algo-2.md) | `geometry/`、`belief/`、`planner/` | 安全盘半径 249.8858 m | +| 3 | [`algo-3.md`](algo-3.md)、[`algo-3-bayes.md`](algo-3-bayes.md) | `planner/bayes_loop.py`、`planner/seven.py` | 七点上界 984.5391 m < 1000 m | +| 4 | [`algo-4.md`](algo-4.md) | `planner/directional.py`、`belief/joint.py` | 证书缺口 0,最坏命中 990.05 m | +| 1–4 | [`最优与基线实现对比.md`](最优与基线实现对比.md) | `project/` | `uv run python -m project.run` | + +优化过程与未采用的改动见 +[`第三四问架构优化与运行提速方案.md`](第三四问架构优化与运行提速方案.md)、 +[`第三四问图论与动态规划优化方案.md`](第三四问图论与动态规划优化方案.md)。 diff --git a/docs/执行时间与执行步骤.md b/docs/执行时间与执行步骤.md new file mode 100644 index 0000000..fa23cb3 --- /dev/null +++ b/docs/执行时间与执行步骤.md @@ -0,0 +1,178 @@ +# 执行时间与执行步骤 + +> 配套插图:[`figures/steps-state-machine.png`](figures/steps-state-machine.png)(状态机与动作回合)、 +> [`figures/timing-attachment-example-105-111-194-199.png`](figures/timing-attachment-example-105-111-194-199.png)(附件示例逐步推演)、 +> [`figures/timing-measured-q3-10-sources.png`](figures/timing-measured-q3-10-sources.png)(实测一局的时序分解)。 +> 复现:`uv run python scripts/make_figures.py --only steps-state-machine,timing-attachment-example-105-111-194-199,timing-measured-q3-10-sources` + +本文说明每一步做什么、每步花多少虚拟时间、这些数字如何验证。 +规则原文见 `issue/` 下附件1 表1、表2 与附件2 第 4、10 节; +可执行表格在 `src/mcm26b/protocol/rules.py` 与 `src/mcm26b/config.py` 的 `CostConfig`。 + +--- + +## 1. 计时模型 + +忽略微秒量化时,一次会话的总虚拟时间为 + +$$ +T=\underbrace{\frac{L}{5}}_{\text{移动}}+\underbrace{5N_m}_{\text{检测}} ++\underbrace{N_s}_{\text{换频}}+\underbrace{5N_c^{+}}_{\text{清除成功}} ++\underbrace{3N_c^{-}}_{\text{清除未发现}}, +\qquad L=\text{路径长度(米)},\ 5\ \text{m/s}. +$$ + +规则: + +- 移动按两点间直线距离计,不计加减速; +- 换频只在 `/measure` 触发,任意两频道间固定 1 s,`/clear` 不切换频道; +- 检测固定 5 s,与结果无关,`direction` 与 `no_signal` 同价; +- 清除成功 5 s(光学定位 3 s + 激光清除 2 s),未发现目标 3 s(仅光学定位); +- `/enter`、`/exit` 不产生虚拟时间; +- 访问顺序是开放路径问题,起点固定、终点自由,不必回到起点。 + +![执行步骤:状态机与动作回合](figures/steps-state-machine.png) + +--- + +## 2. 执行步骤 + +### 2.1 会话级状态机 + +| 状态 | 进入条件 | 允许的动作 | 退出条件 | +| --- | --- | --- | --- | +| `IDLE` | 界面待机(演练不限次 / 正式各 3 次) | — | 点击"开始测试" | +| `COUNTDOWN` | 数据准备完成 | —(接口未开放) | 5 s 倒计时结束 | +| `OPEN` | 倒计时结束,接口在 `:2026` 开放 | `/enter` → `/measure` `/clear` → `/exit` | 25 分钟窗口到期 / 源全清后主动 `/exit` / 中止 | +| `CLOSED` | 窗口到期或进程退出 | —(连接关闭,已登记动作可完成) | — | + +现实预算与现实窗口是两条独立时钟:`/enter` 成功后 `max_real_duration_s = 1200 s` +起算(程序侧),测试窗口 `test_window_s = 1500 s`(服务端侧)。 +客户端维护本地截止时钟,剩余不足 60 s(`reserve_exit_s`,工程参数)时不再发起新动作, +只保证 `/exit` 能发出去。 + +### 2.2 单次动作回合(严格串行) + +![动作回合](figures/steps-state-machine.png) + +1. 本地预校验:`channel ∈ [1,20]`、坐标有限且 $\lvert x\rvert,\lvert y\rvert\le 2\times10^6$、 + `request_id` 长度与字符集,与服务器 400 语义一致,省一次往返; +2. 串行发送:同一时刻只有一个未决请求,不并发(并发会得到 409); +3. 等服务端计时:`accepted=true` 才更新状态,虚拟时刻取响应中的 `virtual_time_s`, + 不做本地累加;`accepted=false` 抛 `ActionRejected`,状态不更新, + `virtual_time_s=0` 不计入时钟; +4. 更新本地状态:位置、当前频道、剩余现实预算,追加 JSONL 会话日志; +5. 异常处理:网络错误、429、500 时同 `request_id` 同内容重发 + (请求体一次性序列化,最多 `max_attempts` 次,指数退避); + 400、404、405、409、413、415 立即失败。 + +重发不会重复计时,服务端按 `request_id` 幂等。 + +### 2.3 任务类型 + +| 任务 | 触发 | 动作序列 | 虚拟成本 | +| --- | --- | --- | --- | +| 覆盖扫描 | 某频道尚未被任何站点覆盖 | 移动到覆盖点 → `/measure` | 距离/5 + 5 s(+ 换频 1 s) | +| 定位交会 | 某频道收到 `direction` | 移动到第二检测点 → `/measure` | 距离/5 + 5 s(+ 1 s) | +| 清除 | 同频道候选区域 ρ ≤ 20 m | 移动到 MEC 圆心附近 → `/clear` | 距离/5 + 5 s 或 3 s | +| 后备盲清(问题四) | 联合信念坍缩到有限格 | 依次到可疑格 `/clear` | 距离/5 + 3 s 或 5 s | +| 机会测量 | 已停靠且该频道待测 | 原地 `/measure` | 5 s | + +任务表排序是开放路径问题,默认用滚动 2-opt 与 Or-opt; +精确 Held-Karp 与路线感知探点在本模拟器上为负收益,默认关闭,见 +[`第三四问图论与动态规划优化方案.md`](第三四问图论与动态规划优化方案.md) §8.6。 + +--- + +## 3. 附件计时示例逐步推演(105 / 111 / 194 / 199) + +| 步 | 指令 | 移动 | 换频 | 动作 | 本步 | 累计 | +| --- | --- | --- | --- | --- | --- | --- | +| 1 | `/enter` | 0 | 0 | 0 | 0 | 0 | +| 2 | `/measure (300,400) ch1` | 500 m → 100 s | 0(初始即 1) | 5 | 105 | 105 | +| 3 | `/measure (300,400) ch2` | 0 | 1 | 5 | 6 | 111 | +| 4 | `/clear (300,0) ch3` | 400 m → 80 s | 0 | 3(未发现) | 83 | 194 | +| 5 | `/measure (300,0) ch2` | 0 | 0(第 3 步后已是 2) | 5 | 5 | 199 | +| 6 | `/exit` | 0 | 0 | 0 | 0 | 199 | + +![附件计时示例逐步推演](figures/timing-attachment-example-105-111-194-199.png) + +验证方式: + +```bash +uv run mcm26b sim-check # 客户端 → 本地模拟器链路,输出 [105, 111, 194, 199] +uv run pytest tests/test_protocol_timing.py -q # 逐步断言移动、换频、动作三个分项 +``` + +--- + +## 4. 实测时序分解 + +对评测机留档的每一局,`scripts/make_figures.py` 按与 `referee.simulator` +同源的规则逐动作复算,并检查分项之和是否等于响应中的 `virtual_time_s`。 + +### 4.1 问题三演练局 `BBM9-HZG2-77N5-NKKC`(10 源全清) + +| 项 | 数值 | 占比 | +| --- | ---: | ---: | +| 总虚拟时间 | 3134.643 s | 100% | +| 移动(里程 11.9 km) | 2379.6 s | 75.9% | +| 检测与清除动作(119 + 10 次) | 645.0 s | 20.6% | +| 换频(110 次) | 110.0 s | 3.5% | +| 现实耗时 | 1.889 s | — | + +### 4.2 问题四演练局 `GM56-DFXZ-XKDM-XYV7`(12 源,含 3 个定向源) + +| 项 | 数值 | 占比 | +| --- | ---: | ---: | +| 总虚拟时间 | 8703.766 s | 100% | +| 移动(里程 32.4 km) | 6489.8 s | 74.6% | +| 检测与清除动作(338 + 79 次) | 1951.0 s | 22.4% | +| 换频(263 次) | 263.0 s | 3.0% | +| 现实耗时 | 3.397 s | — | + +![实测执行时序分解](figures/timing-measured-q3-10-sources.png) + +### 4.3 结论 + +1. 移动占约 75%,优化重点是路径长度,这解释了七点计划(7 点、6.96 km 巡回) + 优于 49 点网格的原因; +2. 动作占约 21%,检测 5 s 是下限,因此找全后立即退出比复扫更省时间; +3. 现实耗时与成绩无关,本地回环为毫秒级,官方口径取虚拟时间, + 程序预算(1200 s)只用于限制计算耗时。 + +### 4.4 复现命令 + +```bash +# 用评测机留档重画(含真值) +uv run python scripts/make_figures.py --only timing-measured-q3-10-sources,\ + replay-webui-q3-omnidirectional,replay-webui-q4-directional + +# 归档新日志,评测机数据被清理后仍可复现插图 +uv run python scripts/archive_replay_logs.py --list +uv run python scripts/archive_replay_logs.py BBM9-HZG2-77N5-NKKC + +# 按官方口径逐微秒复算(接受客户端 JSONL 或评测机 log.jsonl) +uv run python scripts/analyze_run_timing.py referee-data/sessions/BBM9-HZG2-77N5-NKKC/log.jsonl +uv run python scripts/analyze_run_timing.py examples/replay/*.jsonl --json /tmp/timing.json +uv run python scripts/verify_q3_practice.py output/q3/practice/<本局目录> +``` + +--- + +## 5. 时间预算与安全阀 + +| 约束 | 值 | 来源 | 客户端行为 | +| --- | --- | --- | --- | +| 移动速度 | 5 m/s | 题面 | 路径长度决定虚拟时间 | +| 检测 / 换频 | 5 s / 1 s | 题面 | 避免高频扫频 | +| 清除成功 / 未发现 | 5 s / 3 s | 题面 | 盲清代价可控 | +| 测试窗口 | 1500 s(现实) | 题面 | 窗口到期接口关闭 | +| 程序预算 | 1200 s(现实) | 题面 | `/enter` 后本地时钟起算 | +| 退出预留 | 60 s | 工程 | 剩余不足时只允许 `/exit` | +| 虚拟世界限时 | 360000 s | 题面 | 实测最坏为 1e4 量级,未触及 | +| 行为日志上限 | 2 MB | 题面 | 控制请求数 | + +安全阀见 [`algo-3.md`](algo-3.md) §7.2 与 [`algo-4.md`](algo-4.md) §5.2: +预算将尽、连续无新发现或联合信念长时间不收敛时,转入最低成本收尾, +先清除并登记已有发现,再 `/exit`,并写入 `stop_reason`。 diff --git a/examples/replay/BBM9-HZG2-77N5-NKKC.q3_practice.jsonl b/examples/replay/BBM9-HZG2-77N5-NKKC.q3_practice.jsonl new file mode 100644 index 0000000..fd349e4 --- /dev/null +++ b/examples/replay/BBM9-HZG2-77N5-NKKC.q3_practice.jsonl @@ -0,0 +1,133 @@ +{"event":"session_start","case_code":"BBM9-HZG2-77N5-NKKC","module":"q3_practice","robot_id":"1","seed":214175614,"countdown_s":5.0,"window_s":1500.0,"max_real_duration_s":1200.0,"truth":[{"channel":13,"x":-667.5434273375823,"y":1201.9279733147766,"r_eff_m":1068.7667479727882,"directional":false,"heading_deg":0.0},{"channel":18,"x":936.4803225514449,"y":-449.0798658945765,"r_eff_m":1100.2220789348723,"directional":false,"heading_deg":0.0},{"channel":7,"x":1168.5586737701378,"y":-665.9024303254582,"r_eff_m":1380.180019258212,"directional":false,"heading_deg":0.0},{"channel":16,"x":-704.338944452677,"y":-1500.6801256821625,"r_eff_m":1260.765213581664,"directional":false,"heading_deg":0.0},{"channel":9,"x":301.3279949940345,"y":-1195.568730289507,"r_eff_m":1268.9333402487596,"directional":false,"heading_deg":0.0},{"channel":19,"x":-1016.5047516327342,"y":-1362.2054377699205,"r_eff_m":1029.8927902123228,"directional":false,"heading_deg":0.0},{"channel":17,"x":-1128.3611120627002,"y":-751.6668239293164,"r_eff_m":1073.440585013539,"directional":false,"heading_deg":0.0},{"channel":2,"x":1267.339479448259,"y":687.5619158006604,"r_eff_m":1380.3211633911274,"directional":false,"heading_deg":0.0},{"channel":14,"x":-431.7778870393432,"y":921.0181764839424,"r_eff_m":1418.973099517202,"directional":false,"heading_deg":0.0},{"channel":11,"x":437.0112473060851,"y":-112.52557536387796,"r_eff_m":1181.7035745633132,"directional":false,"heading_deg":0.0}]} +{"event":"action","seq":1,"wall_ts_ms":1789097576646,"method":"POST","path":"/enter","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0001"},"response":{"accepted":true,"real_timestamp_ms":1789097576646,"virtual_time_s":0.0,"max_virtual_duration_s":360000.0,"max_real_duration_s":1200,"remaining_real_duration_s":1200}} +{"event":"action","seq":2,"wall_ts_ms":1789097576662,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0002","position":{"x":0.0,"y":0.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789097576662,"virtual_time_s":5.0,"measure_result":"no_signal"}} +{"event":"action","seq":3,"wall_ts_ms":1789097576667,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0003","position":{"x":0.0,"y":0.0},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789097576667,"virtual_time_s":11.0,"measure_result":"no_signal"}} +{"event":"action","seq":4,"wall_ts_ms":1789097576672,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0004","position":{"x":0.0,"y":0.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789097576672,"virtual_time_s":17.0,"measure_result":"no_signal"}} +{"event":"action","seq":5,"wall_ts_ms":1789097576677,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0005","position":{"x":0.0,"y":0.0},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789097576677,"virtual_time_s":23.0,"measure_result":"no_signal"}} +{"event":"action","seq":6,"wall_ts_ms":1789097576689,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0006","position":{"x":0.0,"y":0.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789097576688,"virtual_time_s":29.0,"measure_result":"no_signal"}} +{"event":"action","seq":7,"wall_ts_ms":1789097576716,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0007","position":{"x":0.0,"y":0.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789097576716,"virtual_time_s":35.0,"measure_result":"no_signal"}} +{"event":"action","seq":8,"wall_ts_ms":1789097576727,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0008","position":{"x":0.0,"y":0.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789097576727,"virtual_time_s":41.0,"measure_result":"direction","svd_deg":329.53}} +{"event":"action","seq":9,"wall_ts_ms":1789097576757,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0009","position":{"x":0.0,"y":0.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789097576757,"virtual_time_s":47.0,"measure_result":"no_signal"}} +{"event":"action","seq":10,"wall_ts_ms":1789097576762,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0010","position":{"x":0.0,"y":0.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789097576762,"virtual_time_s":53.0,"measure_result":"direction","svd_deg":284.61}} +{"event":"action","seq":11,"wall_ts_ms":1789097576791,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0011","position":{"x":0.0,"y":0.0},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789097576791,"virtual_time_s":59.0,"measure_result":"no_signal"}} +{"event":"action","seq":12,"wall_ts_ms":1789097576796,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0012","position":{"x":0.0,"y":0.0},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789097576796,"virtual_time_s":65.0,"measure_result":"direction","svd_deg":345.95}} +{"event":"action","seq":13,"wall_ts_ms":1789097576825,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0013","position":{"x":0.0,"y":0.0},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789097576825,"virtual_time_s":71.0,"measure_result":"no_signal"}} +{"event":"action","seq":14,"wall_ts_ms":1789097576830,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0014","position":{"x":0.0,"y":0.0},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789097576830,"virtual_time_s":77.0,"measure_result":"no_signal"}} +{"event":"action","seq":15,"wall_ts_ms":1789097576835,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0015","position":{"x":0.0,"y":0.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789097576835,"virtual_time_s":83.0,"measure_result":"direction","svd_deg":115.07}} +{"event":"action","seq":16,"wall_ts_ms":1789097576864,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0016","position":{"x":0.0,"y":0.0},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789097576864,"virtual_time_s":89.0,"measure_result":"no_signal"}} +{"event":"action","seq":17,"wall_ts_ms":1789097576868,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0017","position":{"x":0.0,"y":0.0},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097576868,"virtual_time_s":95.0,"measure_result":"no_signal"}} +{"event":"action","seq":18,"wall_ts_ms":1789097576873,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0018","position":{"x":0.0,"y":0.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789097576873,"virtual_time_s":101.0,"measure_result":"no_signal"}} +{"event":"action","seq":19,"wall_ts_ms":1789097576878,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0019","position":{"x":0.0,"y":0.0},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789097576878,"virtual_time_s":107.0,"measure_result":"direction","svd_deg":334.09}} +{"event":"action","seq":20,"wall_ts_ms":1789097576907,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0020","position":{"x":0.0,"y":0.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789097576907,"virtual_time_s":113.0,"measure_result":"no_signal"}} +{"event":"action","seq":21,"wall_ts_ms":1789097576913,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0021","position":{"x":0.0,"y":0.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789097576913,"virtual_time_s":119.0,"measure_result":"no_signal"}} +{"event":"action","seq":22,"wall_ts_ms":1789097577020,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0022","position":{"x":-382.32549659893994,"y":438.1825018611922},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789097577020,"virtual_time_s":241.305923,"measure_result":"direction","svd_deg":95.7}} +{"event":"action","seq":23,"wall_ts_ms":1789097577105,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0023","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789097577105,"virtual_time_s":375.155971,"measure_result":"no_signal"}} +{"event":"action","seq":24,"wall_ts_ms":1789097577108,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0024","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789097577108,"virtual_time_s":381.155971,"measure_result":"no_signal"}} +{"event":"action","seq":25,"wall_ts_ms":1789097577111,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0025","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789097577111,"virtual_time_s":387.155971,"measure_result":"no_signal"}} +{"event":"action","seq":26,"wall_ts_ms":1789097577114,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0026","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789097577114,"virtual_time_s":393.155971,"measure_result":"no_signal"}} +{"event":"action","seq":27,"wall_ts_ms":1789097577117,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0027","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789097577117,"virtual_time_s":399.155971,"measure_result":"no_signal"}} +{"event":"action","seq":28,"wall_ts_ms":1789097577121,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0028","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789097577121,"virtual_time_s":405.155971,"measure_result":"no_signal"}} +{"event":"action","seq":29,"wall_ts_ms":1789097577124,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0029","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789097577124,"virtual_time_s":411.155971,"measure_result":"no_signal"}} +{"event":"action","seq":30,"wall_ts_ms":1789097577128,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0030","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789097577128,"virtual_time_s":417.155971,"measure_result":"no_signal"}} +{"event":"action","seq":31,"wall_ts_ms":1789097577132,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0031","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789097577132,"virtual_time_s":423.155971,"measure_result":"no_signal"}} +{"event":"action","seq":32,"wall_ts_ms":1789097577137,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0032","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789097577136,"virtual_time_s":429.155971,"measure_result":"direction","svd_deg":112.67}} +{"event":"action","seq":33,"wall_ts_ms":1789097577155,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0033","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789097577155,"virtual_time_s":435.155971,"measure_result":"no_signal"}} +{"event":"action","seq":34,"wall_ts_ms":1789097577158,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0034","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097577158,"virtual_time_s":441.155971,"measure_result":"no_signal"}} +{"event":"action","seq":35,"wall_ts_ms":1789097577161,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0035","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789097577161,"virtual_time_s":447.155971,"measure_result":"no_signal"}} +{"event":"action","seq":36,"wall_ts_ms":1789097577165,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0036","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789097577165,"virtual_time_s":453.155971,"measure_result":"no_signal"}} +{"event":"action","seq":37,"wall_ts_ms":1789097577169,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0037","position":{"x":-599.9999999999998,"y":1039.2304845413264},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789097577169,"virtual_time_s":459.155971,"measure_result":"no_signal"}} +{"event":"action","seq":38,"wall_ts_ms":1789097577275,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0038","position":{"x":-432.59886137022454,"y":927.952956866304},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789097577275,"virtual_time_s":505.358374,"measure_result":"direction","svd_deg":276.22}} +{"event":"action","seq":39,"wall_ts_ms":1789097577364,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0039","position":{"x":-428.8404761449007,"y":898.3063116196065},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789097577364,"virtual_time_s":516.335159,"measure_result":"direction","svd_deg":96.95}} +{"event":"action","seq":40,"wall_ts_ms":1789097577365,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0040","position":{"x":-430.7196687575625,"y":913.129634242954},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789097577365,"virtual_time_s":524.323552,"clear_result":"success"}} +{"event":"action","seq":41,"wall_ts_ms":1789097577455,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0041","position":{"x":-441.9875302830439,"y":1247.8826866081681},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789097577455,"virtual_time_s":597.31208,"measure_result":"direction","svd_deg":191.28}} +{"event":"action","seq":42,"wall_ts_ms":1789097577456,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0042","position":{"x":-668.4093907720109,"y":1202.7926660772903},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789097577456,"virtual_time_s":648.485652,"clear_result":"success"}} +{"event":"action","seq":43,"wall_ts_ms":1789097577536,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0043","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789097577536,"virtual_time_s":910.267979,"measure_result":"no_signal"}} +{"event":"action","seq":44,"wall_ts_ms":1789097577539,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0044","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789097577539,"virtual_time_s":916.267979,"measure_result":"direction","svd_deg":332.39}} +{"event":"action","seq":45,"wall_ts_ms":1789097577554,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0045","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789097577554,"virtual_time_s":922.267979,"measure_result":"no_signal"}} +{"event":"action","seq":46,"wall_ts_ms":1789097577557,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0046","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789097577557,"virtual_time_s":928.267979,"measure_result":"no_signal"}} +{"event":"action","seq":47,"wall_ts_ms":1789097577560,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0047","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789097577560,"virtual_time_s":934.267979,"measure_result":"no_signal"}} +{"event":"action","seq":48,"wall_ts_ms":1789097577564,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0048","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789097577564,"virtual_time_s":940.267979,"measure_result":"no_signal"}} +{"event":"action","seq":49,"wall_ts_ms":1789097577567,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0049","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789097577567,"virtual_time_s":946.267979,"measure_result":"no_signal"}} +{"event":"action","seq":50,"wall_ts_ms":1789097577571,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0050","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789097577571,"virtual_time_s":952.267979,"measure_result":"no_signal"}} +{"event":"action","seq":51,"wall_ts_ms":1789097577574,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0051","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789097577574,"virtual_time_s":958.267979,"measure_result":"no_signal"}} +{"event":"action","seq":52,"wall_ts_ms":1789097577577,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0052","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789097577577,"virtual_time_s":964.267979,"measure_result":"no_signal"}} +{"event":"action","seq":53,"wall_ts_ms":1789097577581,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0053","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097577581,"virtual_time_s":970.267979,"measure_result":"no_signal"}} +{"event":"action","seq":54,"wall_ts_ms":1789097577583,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0054","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789097577583,"virtual_time_s":976.267979,"measure_result":"no_signal"}} +{"event":"action","seq":55,"wall_ts_ms":1789097577586,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0055","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789097577586,"virtual_time_s":982.267979,"measure_result":"no_signal"}} +{"event":"action","seq":56,"wall_ts_ms":1789097577588,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0056","position":{"x":600.0000000000001,"y":1039.2304845413264},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789097577588,"virtual_time_s":988.267979,"measure_result":"no_signal"}} +{"event":"action","seq":57,"wall_ts_ms":1789097577687,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0057","position":{"x":994.1110687766269,"y":542.6492729278544},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789097577687,"virtual_time_s":1121.061738,"measure_result":"direction","svd_deg":28.25}} +{"event":"action","seq":58,"wall_ts_ms":1789097577767,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0058","position":{"x":1268.7031752387938,"y":689.8006776789011},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789097577767,"virtual_time_s":1188.368836,"measure_result":"near"}} +{"event":"action","seq":59,"wall_ts_ms":1789097577773,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0059","position":{"x":1268.7031752387938,"y":689.8006776789011},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789097577773,"virtual_time_s":1193.368836,"clear_result":"success"}} +{"event":"action","seq":60,"wall_ts_ms":1789097577859,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0060","position":{"x":1200.0,"y":0.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789097577859,"virtual_time_s":1338.011557,"measure_result":"no_signal"}} +{"event":"action","seq":61,"wall_ts_ms":1789097577861,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0061","position":{"x":1200.0,"y":0.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789097577861,"virtual_time_s":1344.011557,"measure_result":"no_signal"}} +{"event":"action","seq":62,"wall_ts_ms":1789097577864,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0062","position":{"x":1200.0,"y":0.0},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789097577864,"virtual_time_s":1350.011557,"measure_result":"no_signal"}} +{"event":"action","seq":63,"wall_ts_ms":1789097577866,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0063","position":{"x":1200.0,"y":0.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789097577866,"virtual_time_s":1356.011557,"measure_result":"no_signal"}} +{"event":"action","seq":64,"wall_ts_ms":1789097577869,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0064","position":{"x":1200.0,"y":0.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789097577869,"virtual_time_s":1362.011557,"measure_result":"no_signal"}} +{"event":"action","seq":65,"wall_ts_ms":1789097577871,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0065","position":{"x":1200.0,"y":0.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789097577871,"virtual_time_s":1368.011557,"measure_result":"no_signal"}} +{"event":"action","seq":66,"wall_ts_ms":1789097577873,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0066","position":{"x":1200.0,"y":0.0},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789097577873,"virtual_time_s":1374.011557,"measure_result":"no_signal"}} +{"event":"action","seq":67,"wall_ts_ms":1789097577876,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0067","position":{"x":1200.0,"y":0.0},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789097577875,"virtual_time_s":1380.011557,"measure_result":"no_signal"}} +{"event":"action","seq":68,"wall_ts_ms":1789097577878,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0068","position":{"x":1200.0,"y":0.0},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789097577878,"virtual_time_s":1386.011557,"measure_result":"no_signal"}} +{"event":"action","seq":69,"wall_ts_ms":1789097577881,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0069","position":{"x":1200.0,"y":0.0},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097577881,"virtual_time_s":1392.011557,"measure_result":"no_signal"}} +{"event":"action","seq":70,"wall_ts_ms":1789097577884,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0070","position":{"x":1200.0,"y":0.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789097577884,"virtual_time_s":1398.011557,"measure_result":"no_signal"}} +{"event":"action","seq":71,"wall_ts_ms":1789097577888,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0071","position":{"x":1200.0,"y":0.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789097577888,"virtual_time_s":1404.011557,"measure_result":"no_signal"}} +{"event":"action","seq":72,"wall_ts_ms":1789097577890,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0072","position":{"x":1200.0,"y":0.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789097577890,"virtual_time_s":1410.011557,"measure_result":"no_signal"}} +{"event":"action","seq":73,"wall_ts_ms":1789097577973,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0073","position":{"x":904.3723232997338,"y":-5.399878906793646},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789097577973,"virtual_time_s":1475.146955,"measure_result":"direction","svd_deg":193.85}} +{"event":"action","seq":74,"wall_ts_ms":1789097578037,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0074","position":{"x":732.9363400589687,"y":158.81239802766925},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789097578037,"virtual_time_s":1527.625779,"measure_result":"direction","svd_deg":223.37}} +{"event":"action","seq":75,"wall_ts_ms":1789097578039,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0075","position":{"x":446.4480711916748,"y":-111.48435372746496},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789097578039,"virtual_time_s":1611.400359,"clear_result":"success"}} +{"event":"action","seq":76,"wall_ts_ms":1789097578098,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0076","position":{"x":609.8586286156244,"y":-86.93118226598972},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789097578098,"virtual_time_s":1650.449334,"measure_result":"direction","svd_deg":312.82}} +{"event":"action","seq":77,"wall_ts_ms":1789097578145,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0077","position":{"x":711.4189708756367,"y":-138.68820908196022},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789097578145,"virtual_time_s":1679.246959,"measure_result":"direction","svd_deg":311.79}} +{"event":"action","seq":78,"wall_ts_ms":1789097578171,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0078","position":{"x":968.3799882543295,"y":-471.87178417317915},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789097578171,"virtual_time_s":1769.399264,"measure_result":"direction","svd_deg":145.41}} +{"event":"action","seq":79,"wall_ts_ms":1789097578198,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0079","position":{"x":948.6903772101683,"y":-457.77800595341034},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789097578198,"virtual_time_s":1779.242054,"measure_result":"direction","svd_deg":144.5}} +{"event":"action","seq":80,"wall_ts_ms":1789097578200,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0080","position":{"x":938.8455716880909,"y":-450.7311168435281},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789097578200,"virtual_time_s":1786.663449,"clear_result":"success"}} +{"event":"action","seq":81,"wall_ts_ms":1789097578222,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0081","position":{"x":1216.8995655319154,"y":-717.7217593627017},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789097578222,"virtual_time_s":1869.760278,"measure_result":"direction","svd_deg":132.81}} +{"event":"action","seq":82,"wall_ts_ms":1789097578247,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0082","position":{"x":1185.682710431516,"y":-684.9782355200915},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789097578247,"virtual_time_s":1883.808218,"measure_result":"direction","svd_deg":132.18}} +{"event":"action","seq":83,"wall_ts_ms":1789097578269,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0083","position":{"x":1170.5902788598225,"y":-668.8979941203445},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789097578269,"virtual_time_s":1893.218913,"measure_result":"near"}} +{"event":"action","seq":84,"wall_ts_ms":1789097578272,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0084","position":{"x":1170.6182266765854,"y":-668.8718181334558},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789097578272,"virtual_time_s":1898.226571,"clear_result":"success"}} +{"event":"action","seq":85,"wall_ts_ms":1789097578293,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0085","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789097578293,"virtual_time_s":2040.281075,"measure_result":"no_signal"}} +{"event":"action","seq":86,"wall_ts_ms":1789097578296,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0086","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789097578296,"virtual_time_s":2046.281075,"measure_result":"no_signal"}} +{"event":"action","seq":87,"wall_ts_ms":1789097578299,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0087","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789097578299,"virtual_time_s":2052.281075,"measure_result":"no_signal"}} +{"event":"action","seq":88,"wall_ts_ms":1789097578301,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0088","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789097578301,"virtual_time_s":2058.281075,"measure_result":"no_signal"}} +{"event":"action","seq":89,"wall_ts_ms":1789097578304,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0089","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789097578304,"virtual_time_s":2064.281075,"measure_result":"no_signal"}} +{"event":"action","seq":90,"wall_ts_ms":1789097578307,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0090","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789097578307,"virtual_time_s":2070.281075,"measure_result":"no_signal"}} +{"event":"action","seq":91,"wall_ts_ms":1789097578311,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0091","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789097578311,"virtual_time_s":2076.281075,"measure_result":"no_signal"}} +{"event":"action","seq":92,"wall_ts_ms":1789097578314,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0092","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789097578314,"virtual_time_s":2082.281075,"measure_result":"no_signal"}} +{"event":"action","seq":93,"wall_ts_ms":1789097578318,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0093","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789097578318,"virtual_time_s":2088.281075,"measure_result":"no_signal"}} +{"event":"action","seq":94,"wall_ts_ms":1789097578322,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0094","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097578322,"virtual_time_s":2094.281075,"measure_result":"no_signal"}} +{"event":"action","seq":95,"wall_ts_ms":1789097578325,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0095","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789097578325,"virtual_time_s":2100.281075,"measure_result":"no_signal"}} +{"event":"action","seq":96,"wall_ts_ms":1789097578328,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0096","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789097578328,"virtual_time_s":2106.281075,"measure_result":"no_signal"}} +{"event":"action","seq":97,"wall_ts_ms":1789097578332,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0097","position":{"x":600.0000000000001,"y":-1039.2304845413264},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789097578332,"virtual_time_s":2112.281075,"measure_result":"no_signal"}} +{"event":"action","seq":98,"wall_ts_ms":1789097578355,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0098","position":{"x":431.0177074456876,"y":-790.4383437162506},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789097578355,"virtual_time_s":2178.431734,"measure_result":"direction","svd_deg":252.8}} +{"event":"action","seq":99,"wall_ts_ms":1789097578358,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0099","position":{"x":308.8495661381867,"y":-1188.2218722331802},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789097578358,"virtual_time_s":2266.655959,"measure_result":"direction","svd_deg":225.19}} +{"event":"action","seq":100,"wall_ts_ms":1789097578359,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0100","position":{"x":302.26396092359636,"y":-1195.0880783213174},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789097578359,"virtual_time_s":2273.558746,"clear_result":"success"}} +{"event":"action","seq":101,"wall_ts_ms":1789097578360,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0101","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789097578360,"virtual_time_s":2462.684041,"measure_result":"no_signal"}} +{"event":"action","seq":102,"wall_ts_ms":1789097578363,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0102","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789097578363,"virtual_time_s":2468.684041,"measure_result":"no_signal"}} +{"event":"action","seq":103,"wall_ts_ms":1789097578366,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0103","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789097578366,"virtual_time_s":2474.684041,"measure_result":"no_signal"}} +{"event":"action","seq":104,"wall_ts_ms":1789097578371,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0104","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789097578371,"virtual_time_s":2480.684041,"measure_result":"no_signal"}} +{"event":"action","seq":105,"wall_ts_ms":1789097578374,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0105","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789097578374,"virtual_time_s":2486.684041,"measure_result":"no_signal"}} +{"event":"action","seq":106,"wall_ts_ms":1789097578377,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0106","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789097578377,"virtual_time_s":2492.684041,"measure_result":"no_signal"}} +{"event":"action","seq":107,"wall_ts_ms":1789097578380,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0107","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789097578380,"virtual_time_s":2498.684041,"measure_result":"no_signal"}} +{"event":"action","seq":108,"wall_ts_ms":1789097578384,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0108","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789097578383,"virtual_time_s":2504.684041,"measure_result":"no_signal"}} +{"event":"action","seq":109,"wall_ts_ms":1789097578386,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0109","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789097578386,"virtual_time_s":2510.684041,"measure_result":"no_signal"}} +{"event":"action","seq":110,"wall_ts_ms":1789097578389,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0110","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097578389,"virtual_time_s":2516.684041,"measure_result":"direction","svd_deg":257.75}} +{"event":"action","seq":111,"wall_ts_ms":1789097578399,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0111","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789097578399,"virtual_time_s":2522.684041,"measure_result":"direction","svd_deg":150.83}} +{"event":"action","seq":112,"wall_ts_ms":1789097578409,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0112","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789097578409,"virtual_time_s":2528.684041,"measure_result":"direction","svd_deg":217.09}} +{"event":"action","seq":113,"wall_ts_ms":1789097578419,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0113","position":{"x":-600.0000000000006,"y":-1039.230484541326},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789097578419,"virtual_time_s":2534.684041,"measure_result":"no_signal"}} +{"event":"action","seq":114,"wall_ts_ms":1789097578449,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0114","position":{"x":-855.523050877763,"y":-1149.4070702441772},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097578449,"virtual_time_s":2596.336861,"measure_result":"direction","svd_deg":293.06}} +{"event":"action","seq":115,"wall_ts_ms":1789097578473,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0115","position":{"x":-702.0198196486191,"y":-1511.0796905664733},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097578473,"virtual_time_s":2679.91684,"measure_result":"direction","svd_deg":101.78}} +{"event":"action","seq":116,"wall_ts_ms":1789097578475,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0116","position":{"x":-704.0596428309664,"y":-1500.3611560598777},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789097578475,"virtual_time_s":2687.099021,"clear_result":"success"}} +{"event":"action","seq":117,"wall_ts_ms":1789097578495,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0117","position":{"x":-786.4741505952657,"y":-1490.051846445478},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789097578495,"virtual_time_s":2709.710382,"measure_result":"direction","svd_deg":151.04}} +{"event":"action","seq":118,"wall_ts_ms":1789097578497,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0118","position":{"x":-1023.4461023835017,"y":-1359.1588736906476},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789097578497,"virtual_time_s":2768.854145,"clear_result":"success"}} +{"event":"action","seq":119,"wall_ts_ms":1789097578511,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0119","position":{"x":-1266.2459250683066,"y":-1017.2747950835054},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789097578511,"virtual_time_s":2858.719866,"measure_result":"direction","svd_deg":62.8}} +{"event":"action","seq":120,"wall_ts_ms":1789097578513,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0120","position":{"x":-1126.6121592386512,"y":-745.1634840678316},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789097578513,"virtual_time_s":2924.88919,"clear_result":"success"}} +{"event":"action","seq":121,"wall_ts_ms":1789097578515,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0121","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789097578515,"virtual_time_s":3080.642907,"measure_result":"no_signal"}} +{"event":"action","seq":122,"wall_ts_ms":1789097578518,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0122","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789097578518,"virtual_time_s":3086.642907,"measure_result":"no_signal"}} +{"event":"action","seq":123,"wall_ts_ms":1789097578520,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0123","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789097578520,"virtual_time_s":3092.642907,"measure_result":"no_signal"}} +{"event":"action","seq":124,"wall_ts_ms":1789097578522,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0124","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789097578522,"virtual_time_s":3098.642907,"measure_result":"no_signal"}} +{"event":"action","seq":125,"wall_ts_ms":1789097578524,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0125","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789097578524,"virtual_time_s":3104.642907,"measure_result":"no_signal"}} +{"event":"action","seq":126,"wall_ts_ms":1789097578526,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0126","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789097578526,"virtual_time_s":3110.642907,"measure_result":"no_signal"}} +{"event":"action","seq":127,"wall_ts_ms":1789097578527,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0127","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789097578527,"virtual_time_s":3116.642907,"measure_result":"no_signal"}} +{"event":"action","seq":128,"wall_ts_ms":1789097578529,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0128","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789097578529,"virtual_time_s":3122.642907,"measure_result":"no_signal"}} +{"event":"action","seq":129,"wall_ts_ms":1789097578531,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0129","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789097578531,"virtual_time_s":3128.642907,"measure_result":"no_signal"}} +{"event":"action","seq":130,"wall_ts_ms":1789097578533,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0130","position":{"x":-1200.0,"y":1.4695761589768238e-13},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789097578533,"virtual_time_s":3134.642907,"measure_result":"no_signal"}} +{"event":"action","seq":131,"wall_ts_ms":1789097578535,"method":"POST","path":"/exit","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"4721c649063d-0131"},"response":{"accepted":true,"real_timestamp_ms":1789097578535,"virtual_time_s":3134.642907,"exit_reason":"user_exit"}} +{"event":"session_end","reason":"user_exit","virtual_time_s":3134.642907,"real_elapsed_s":3.209263,"request_count":131,"cleared_count":10} diff --git a/examples/replay/GM56-DFXZ-XKDM-XYV7.q4_practice.jsonl b/examples/replay/GM56-DFXZ-XKDM-XYV7.q4_practice.jsonl new file mode 100644 index 0000000..c0492b0 --- /dev/null +++ b/examples/replay/GM56-DFXZ-XKDM-XYV7.q4_practice.jsonl @@ -0,0 +1,421 @@ +{"event":"session_start","case_code":"GM56-DFXZ-XKDM-XYV7","module":"q4_practice","robot_id":"1","seed":862296605,"countdown_s":5.0,"window_s":1500.0,"max_real_duration_s":1200.0,"truth":[{"channel":16,"x":-524.5206714300155,"y":1076.6097330631062,"r_eff_m":1266.1144095417988,"directional":true,"heading_deg":323.3365774469903},{"channel":10,"x":712.0048721054991,"y":-350.77945242364206,"r_eff_m":1142.2414995302777,"directional":true,"heading_deg":256.5462028174308},{"channel":7,"x":1591.9527024388633,"y":-417.6806591511811,"r_eff_m":1488.5247138130503,"directional":true,"heading_deg":145.9558235911333},{"channel":1,"x":-1088.117367198431,"y":-567.662158187589,"r_eff_m":1174.5517593406385,"directional":false,"heading_deg":0.0},{"channel":11,"x":906.4341088975847,"y":-1164.9533159379737,"r_eff_m":1205.6825113239083,"directional":false,"heading_deg":0.0},{"channel":12,"x":-440.7136903976244,"y":-1125.6333701710744,"r_eff_m":1392.7970264272578,"directional":false,"heading_deg":0.0},{"channel":15,"x":396.09072396953906,"y":-1233.8343338670759,"r_eff_m":1447.254884675842,"directional":false,"heading_deg":0.0},{"channel":18,"x":-924.1740699985598,"y":1042.867539519964,"r_eff_m":1397.743907895721,"directional":false,"heading_deg":0.0},{"channel":5,"x":404.69205111704883,"y":1512.8465933025086,"r_eff_m":1275.2012367943066,"directional":false,"heading_deg":0.0},{"channel":13,"x":346.29727268509714,"y":-1700.4782817821338,"r_eff_m":1110.0997753757654,"directional":false,"heading_deg":0.0},{"channel":2,"x":-848.0195414748022,"y":647.6935881860475,"r_eff_m":1437.3660943189293,"directional":false,"heading_deg":0.0},{"channel":4,"x":1284.0330369450317,"y":1006.2534742058411,"r_eff_m":1292.0520810945493,"directional":false,"heading_deg":0.0}]} +{"event":"action","seq":1,"wall_ts_ms":1789176627501,"method":"POST","path":"/enter","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0001"},"response":{"accepted":true,"real_timestamp_ms":1789176627501,"virtual_time_s":0.0,"max_virtual_duration_s":360000.0,"max_real_duration_s":1200,"remaining_real_duration_s":1200}} +{"event":"action","seq":2,"wall_ts_ms":1789176627503,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0002","position":{"x":0.0,"y":0.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176627503,"virtual_time_s":5.0,"measure_result":"no_signal"}} +{"event":"action","seq":3,"wall_ts_ms":1789176627504,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0003","position":{"x":0.0,"y":0.0},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789176627504,"virtual_time_s":11.0,"measure_result":"direction","svd_deg":142.87}} +{"event":"action","seq":4,"wall_ts_ms":1789176627538,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0004","position":{"x":0.0,"y":0.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176627538,"virtual_time_s":17.0,"measure_result":"no_signal"}} +{"event":"action","seq":5,"wall_ts_ms":1789176627539,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0005","position":{"x":0.0,"y":0.0},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789176627539,"virtual_time_s":23.0,"measure_result":"no_signal"}} +{"event":"action","seq":6,"wall_ts_ms":1789176627539,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0006","position":{"x":0.0,"y":0.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176627539,"virtual_time_s":29.0,"measure_result":"no_signal"}} +{"event":"action","seq":7,"wall_ts_ms":1789176627540,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0007","position":{"x":0.0,"y":0.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176627540,"virtual_time_s":35.0,"measure_result":"no_signal"}} +{"event":"action","seq":8,"wall_ts_ms":1789176627540,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0008","position":{"x":0.0,"y":0.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176627540,"virtual_time_s":41.0,"measure_result":"no_signal"}} +{"event":"action","seq":9,"wall_ts_ms":1789176627541,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0009","position":{"x":0.0,"y":0.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176627541,"virtual_time_s":47.0,"measure_result":"no_signal"}} +{"event":"action","seq":10,"wall_ts_ms":1789176627542,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0010","position":{"x":0.0,"y":0.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176627542,"virtual_time_s":53.0,"measure_result":"no_signal"}} +{"event":"action","seq":11,"wall_ts_ms":1789176627543,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0011","position":{"x":0.0,"y":0.0},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789176627543,"virtual_time_s":59.0,"measure_result":"no_signal"}} +{"event":"action","seq":12,"wall_ts_ms":1789176627543,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0012","position":{"x":0.0,"y":0.0},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176627543,"virtual_time_s":65.0,"measure_result":"no_signal"}} +{"event":"action","seq":13,"wall_ts_ms":1789176627544,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0013","position":{"x":0.0,"y":0.0},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789176627544,"virtual_time_s":71.0,"measure_result":"direction","svd_deg":249.23000000000002}} +{"event":"action","seq":14,"wall_ts_ms":1789176627578,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0014","position":{"x":0.0,"y":0.0},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176627578,"virtual_time_s":77.0,"measure_result":"no_signal"}} +{"event":"action","seq":15,"wall_ts_ms":1789176627579,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0015","position":{"x":0.0,"y":0.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176627579,"virtual_time_s":83.0,"measure_result":"no_signal"}} +{"event":"action","seq":16,"wall_ts_ms":1789176627579,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0016","position":{"x":0.0,"y":0.0},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789176627579,"virtual_time_s":89.0,"measure_result":"direction","svd_deg":287.02}} +{"event":"action","seq":17,"wall_ts_ms":1789176627614,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0017","position":{"x":0.0,"y":0.0},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627614,"virtual_time_s":95.0,"measure_result":"direction","svd_deg":115.81}} +{"event":"action","seq":18,"wall_ts_ms":1789176627648,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0018","position":{"x":0.0,"y":0.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176627648,"virtual_time_s":101.0,"measure_result":"no_signal"}} +{"event":"action","seq":19,"wall_ts_ms":1789176627649,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0019","position":{"x":0.0,"y":0.0},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789176627649,"virtual_time_s":107.0,"measure_result":"direction","svd_deg":131.59}} +{"event":"action","seq":20,"wall_ts_ms":1789176627683,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0020","position":{"x":0.0,"y":0.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176627683,"virtual_time_s":113.0,"measure_result":"no_signal"}} +{"event":"action","seq":21,"wall_ts_ms":1789176627684,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0021","position":{"x":0.0,"y":0.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176627684,"virtual_time_s":119.0,"measure_result":"no_signal"}} +{"event":"action","seq":22,"wall_ts_ms":1789176627792,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0022","position":{"x":203.4343811666737,"y":144.6893122685409},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627792,"virtual_time_s":174.928166,"measure_result":"direction","svd_deg":128.82}} +{"event":"action","seq":23,"wall_ts_ms":1789176627826,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0023","position":{"x":-311.2425550798696,"y":834.1583620758665},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627826,"virtual_time_s":352.004884,"measure_result":"direction","svd_deg":131.54}} +{"event":"action","seq":24,"wall_ts_ms":1789176627848,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0024","position":{"x":-417.950364283015,"y":970.4361579464362},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627848,"virtual_time_s":391.621755,"measure_result":"direction","svd_deg":134.21}} +{"event":"action","seq":25,"wall_ts_ms":1789176627864,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0025","position":{"x":-480.46143877622444,"y":1037.7141305929167},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627864,"virtual_time_s":414.989074,"measure_result":"direction","svd_deg":137.8}} +{"event":"action","seq":26,"wall_ts_ms":1789176627879,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0026","position":{"x":-495.83724096621324,"y":1048.755585943092},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627879,"virtual_time_s":423.77499,"measure_result":"direction","svd_deg":135.92}} +{"event":"action","seq":27,"wall_ts_ms":1789176627891,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0027","position":{"x":-502.6708670887933,"y":1055.235185439503},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627891,"virtual_time_s":430.65843,"measure_result":"direction","svd_deg":135.46}} +{"event":"action","seq":28,"wall_ts_ms":1789176627907,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0028","position":{"x":-504.15939756610106,"y":1056.6465909981732},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627907,"virtual_time_s":436.068688,"measure_result":"direction","svd_deg":136.32}} +{"event":"action","seq":29,"wall_ts_ms":1789176627919,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0029","position":{"x":-509.2545636173579,"y":1061.3274324862907},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627919,"virtual_time_s":442.452465,"measure_result":"direction","svd_deg":134.7}} +{"event":"action","seq":30,"wall_ts_ms":1789176627921,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0030","position":{"x":-530.0,"y":1070.0},"channel":16},"response":{"accepted":true,"real_timestamp_ms":1789176627921,"virtual_time_s":451.949515,"clear_result":"success"}} +{"event":"action","seq":31,"wall_ts_ms":1789176628039,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0031","position":{"x":-497.5578416531835,"y":936.4798565361209},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789176628039,"virtual_time_s":485.430507,"measure_result":"direction","svd_deg":165.91}} +{"event":"action","seq":32,"wall_ts_ms":1789176628056,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0032","position":{"x":-870.5044046825748,"y":986.9651951603664},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789176628056,"virtual_time_s":565.700131,"measure_result":"direction","svd_deg":134.69}} +{"event":"action","seq":33,"wall_ts_ms":1789176628058,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0033","position":{"x":-928.1968994917735,"y":1044.8514975713322},"channel":18},"response":{"accepted":true,"real_timestamp_ms":1789176628058,"virtual_time_s":587.045464,"clear_result":"success"}} +{"event":"action","seq":34,"wall_ts_ms":1789176628166,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0034","position":{"x":-862.9906179313325,"y":718.4282467255796},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789176628166,"virtual_time_s":659.619933,"measure_result":"direction","svd_deg":282.52}} +{"event":"action","seq":35,"wall_ts_ms":1789176628176,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0035","position":{"x":-845.1130456790994,"y":686.001392824461},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789176628176,"virtual_time_s":672.025629,"measure_result":"direction","svd_deg":265.87}} +{"event":"action","seq":36,"wall_ts_ms":1789176628177,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0036","position":{"x":-847.6746007769079,"y":648.9342354479113},"channel":2},"response":{"accepted":true,"real_timestamp_ms":1789176628177,"virtual_time_s":684.456741,"clear_result":"success"}} +{"event":"action","seq":37,"wall_ts_ms":1789176628291,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0037","position":{"x":-265.37802696051864,"y":48.506777636046536},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789176628291,"virtual_time_s":857.73883,"measure_result":"direction","svd_deg":260.6}} +{"event":"action","seq":38,"wall_ts_ms":1789176628326,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0038","position":{"x":-469.75721825078074,"y":-993.1945205185655},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789176628326,"virtual_time_s":1075.051095,"measure_result":"direction","svd_deg":282.38}} +{"event":"action","seq":39,"wall_ts_ms":1789176628327,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0039","position":{"x":-441.5215936013995,"y":-1123.0747819124222},"channel":12},"response":{"accepted":true,"real_timestamp_ms":1789176628327,"virtual_time_s":1106.633896,"clear_result":"success"}} +{"event":"action","seq":40,"wall_ts_ms":1789176628449,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0040","position":{"x":-311.5453347487594,"y":-1247.9984385205082},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789176628448,"virtual_time_s":1148.689269,"measure_result":"direction","svd_deg":2.01}} +{"event":"action","seq":41,"wall_ts_ms":1789176628465,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0041","position":{"x":344.2647005168924,"y":-1193.49630528446},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789176628465,"virtual_time_s":1285.303445,"measure_result":"direction","svd_deg":322.55}} +{"event":"action","seq":42,"wall_ts_ms":1789176628474,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0042","position":{"x":362.93782740943095,"y":-1202.306532513895},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789176628474,"virtual_time_s":1294.43288,"measure_result":"direction","svd_deg":315.62}} +{"event":"action","seq":43,"wall_ts_ms":1789176628475,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0043","position":{"x":389.58153144171735,"y":-1228.1021047955844},"channel":15},"response":{"accepted":true,"real_timestamp_ms":1789176628475,"virtual_time_s":1306.849883,"clear_result":"success"}} +{"event":"action","seq":44,"wall_ts_ms":1789176628476,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0044","position":{"x":600.0,"y":-1400.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176628476,"virtual_time_s":1367.191329,"measure_result":"no_signal"}} +{"event":"action","seq":45,"wall_ts_ms":1789176628476,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0045","position":{"x":600.0,"y":-1400.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176628476,"virtual_time_s":1373.191329,"measure_result":"no_signal"}} +{"event":"action","seq":46,"wall_ts_ms":1789176628477,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0046","position":{"x":600.0,"y":-1400.0},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789176628477,"virtual_time_s":1379.191329,"measure_result":"no_signal"}} +{"event":"action","seq":47,"wall_ts_ms":1789176628477,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0047","position":{"x":600.0,"y":-1400.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176628477,"virtual_time_s":1385.191329,"measure_result":"no_signal"}} +{"event":"action","seq":48,"wall_ts_ms":1789176628478,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0048","position":{"x":600.0,"y":-1400.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176628478,"virtual_time_s":1391.191329,"measure_result":"no_signal"}} +{"event":"action","seq":49,"wall_ts_ms":1789176628479,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0049","position":{"x":600.0,"y":-1400.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176628479,"virtual_time_s":1397.191329,"measure_result":"direction","svd_deg":44.78}} +{"event":"action","seq":50,"wall_ts_ms":1789176628507,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0050","position":{"x":600.0,"y":-1400.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176628507,"virtual_time_s":1403.191329,"measure_result":"no_signal"}} +{"event":"action","seq":51,"wall_ts_ms":1789176628508,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0051","position":{"x":600.0,"y":-1400.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176628508,"virtual_time_s":1409.191329,"measure_result":"no_signal"}} +{"event":"action","seq":52,"wall_ts_ms":1789176628508,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0052","position":{"x":600.0,"y":-1400.0},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789176628508,"virtual_time_s":1415.191329,"measure_result":"direction","svd_deg":83.87}} +{"event":"action","seq":53,"wall_ts_ms":1789176628537,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0053","position":{"x":600.0,"y":-1400.0},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628537,"virtual_time_s":1421.191329,"measure_result":"direction","svd_deg":36.51}} +{"event":"action","seq":54,"wall_ts_ms":1789176628566,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0054","position":{"x":600.0,"y":-1400.0},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628566,"virtual_time_s":1427.191329,"measure_result":"direction","svd_deg":229.98}} +{"event":"action","seq":55,"wall_ts_ms":1789176628595,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0055","position":{"x":600.0,"y":-1400.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176628595,"virtual_time_s":1433.191329,"measure_result":"no_signal"}} +{"event":"action","seq":56,"wall_ts_ms":1789176628596,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0056","position":{"x":600.0,"y":-1400.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176628596,"virtual_time_s":1439.191329,"measure_result":"no_signal"}} +{"event":"action","seq":57,"wall_ts_ms":1789176628597,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0057","position":{"x":600.0,"y":-1400.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176628597,"virtual_time_s":1445.191329,"measure_result":"no_signal"}} +{"event":"action","seq":58,"wall_ts_ms":1789176628598,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0058","position":{"x":600.0,"y":-1400.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176628598,"virtual_time_s":1451.191329,"measure_result":"no_signal"}} +{"event":"action","seq":59,"wall_ts_ms":1789176628635,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0059","position":{"x":612.769143781833,"y":-1411.9126285523905},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628635,"virtual_time_s":1460.68396,"measure_result":"direction","svd_deg":228.03}} +{"event":"action","seq":60,"wall_ts_ms":1789176628656,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0060","position":{"x":488.28892399223247,"y":-1555.258637843486},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628656,"virtual_time_s":1503.654161,"measure_result":"direction","svd_deg":225.09}} +{"event":"action","seq":61,"wall_ts_ms":1789176628680,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0061","position":{"x":464.24008775648366,"y":-1581.4091281036367},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628680,"virtual_time_s":1515.759637,"measure_result":"direction","svd_deg":225.74}} +{"event":"action","seq":62,"wall_ts_ms":1789176628702,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0062","position":{"x":443.4541092572734,"y":-1604.012442774533},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628701,"virtual_time_s":1526.90119,"measure_result":"direction","svd_deg":225.37}} +{"event":"action","seq":63,"wall_ts_ms":1789176628723,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0063","position":{"x":435.3536321162203,"y":-1612.8214287026208},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628723,"virtual_time_s":1534.294647,"measure_result":"direction","svd_deg":224.12}} +{"event":"action","seq":64,"wall_ts_ms":1789176628741,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0064","position":{"x":431.6884641242621,"y":-1616.0029103437198},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628741,"virtual_time_s":1540.265323,"measure_result":"direction","svd_deg":225.56}} +{"event":"action","seq":65,"wall_ts_ms":1789176628755,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0065","position":{"x":424.90388434893435,"y":-1623.0873437184766},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628755,"virtual_time_s":1547.227156,"measure_result":"direction","svd_deg":224.55}} +{"event":"action","seq":66,"wall_ts_ms":1789176628769,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0066","position":{"x":424.90388434893435,"y":-1623.0873437184766},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628769,"virtual_time_s":1552.227156,"measure_result":"direction","svd_deg":224.55}} +{"event":"action","seq":67,"wall_ts_ms":1789176628770,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0067","position":{"x":390.0,"y":-1650.0},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628770,"virtual_time_s":1564.04208,"clear_result":"no_target_in_range"}} +{"event":"action","seq":68,"wall_ts_ms":1789176628771,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0068","position":{"x":390.0,"y":-1670.0},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628771,"virtual_time_s":1571.04208,"clear_result":"no_target_in_range"}} +{"event":"action","seq":69,"wall_ts_ms":1789176628771,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0069","position":{"x":370.0,"y":-1670.0},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628771,"virtual_time_s":1578.04208,"clear_result":"no_target_in_range"}} +{"event":"action","seq":70,"wall_ts_ms":1789176628772,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0070","position":{"x":370.0,"y":-1690.0},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628772,"virtual_time_s":1585.04208,"clear_result":"no_target_in_range"}} +{"event":"action","seq":71,"wall_ts_ms":1789176628772,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0071","position":{"x":350.0,"y":-1690.0},"channel":13},"response":{"accepted":true,"real_timestamp_ms":1789176628772,"virtual_time_s":1594.04208,"clear_result":"success"}} +{"event":"action","seq":72,"wall_ts_ms":1789176628874,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0072","position":{"x":411.79373555366476,"y":-1717.838581828962},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628874,"virtual_time_s":1613.597083,"measure_result":"direction","svd_deg":49.15}} +{"event":"action","seq":73,"wall_ts_ms":1789176628892,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0073","position":{"x":766.8838287107096,"y":-1296.2930792223774},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628892,"virtual_time_s":1728.831304,"measure_result":"direction","svd_deg":44.09}} +{"event":"action","seq":74,"wall_ts_ms":1789176628909,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0074","position":{"x":800.7301756620684,"y":-1266.6704889596645},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628909,"virtual_time_s":1742.827021,"measure_result":"direction","svd_deg":43.75}} +{"event":"action","seq":75,"wall_ts_ms":1789176628923,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0075","position":{"x":820.3781924062749,"y":-1249.3764003674905},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628923,"virtual_time_s":1753.062019,"measure_result":"direction","svd_deg":44.6}} +{"event":"action","seq":76,"wall_ts_ms":1789176628935,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0076","position":{"x":844.4958977984477,"y":-1225.8950853428623},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628935,"virtual_time_s":1764.794139,"measure_result":"direction","svd_deg":45.05}} +{"event":"action","seq":77,"wall_ts_ms":1789176628945,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0077","position":{"x":855.9562038575117,"y":-1214.7371822060427},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628945,"virtual_time_s":1772.993123,"measure_result":"direction","svd_deg":44.9}} +{"event":"action","seq":78,"wall_ts_ms":1789176628955,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0078","position":{"x":865.9179588599695,"y":-1205.038289492462},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628955,"virtual_time_s":1780.773807,"measure_result":"direction","svd_deg":43.98}} +{"event":"action","seq":79,"wall_ts_ms":1789176628956,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0079","position":{"x":898.21078066507,"y":-1173.1730975244195},"channel":11},"response":{"accepted":true,"real_timestamp_ms":1789176628955,"virtual_time_s":1794.847322,"clear_result":"success"}} +{"event":"action","seq":80,"wall_ts_ms":1789176629078,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0080","position":{"x":866.8151916328336,"y":-1136.3661336833432},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629078,"virtual_time_s":1810.522932,"measure_result":"direction","svd_deg":44.48}} +{"event":"action","seq":81,"wall_ts_ms":1789176629176,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0081","position":{"x":871.4749861156209,"y":-1141.0811615347607},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629176,"virtual_time_s":1816.848755,"measure_result":"direction","svd_deg":44.56}} +{"event":"action","seq":82,"wall_ts_ms":1789176629261,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0082","position":{"x":835.0610147818679,"y":-1181.2600790843733},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629261,"virtual_time_s":1832.693704,"measure_result":"direction","svd_deg":45.09}} +{"event":"action","seq":83,"wall_ts_ms":1789176629343,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0083","position":{"x":834.9071059567416,"y":-1181.1002911848286},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629343,"virtual_time_s":1837.738075,"measure_result":"direction","svd_deg":45.24}} +{"event":"action","seq":84,"wall_ts_ms":1789176629428,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0084","position":{"x":834.8004921492156,"y":-1180.9897369495718},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629428,"virtual_time_s":1842.768792,"measure_result":"direction","svd_deg":44.67}} +{"event":"action","seq":85,"wall_ts_ms":1789176629512,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0085","position":{"x":864.7230500744597,"y":-1151.0671790243275},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629512,"virtual_time_s":1856.232169,"measure_result":"direction","svd_deg":45.95}} +{"event":"action","seq":86,"wall_ts_ms":1789176629589,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0086","position":{"x":860.4040223975106,"y":-1146.6963845782388},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629589,"virtual_time_s":1862.461117,"measure_result":"direction","svd_deg":45.79}} +{"event":"action","seq":87,"wall_ts_ms":1789176629648,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0087","position":{"x":979.6223276288076,"y":-1025.3778081444027},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629648,"virtual_time_s":1901.479466,"measure_result":"direction","svd_deg":45.37}} +{"event":"action","seq":88,"wall_ts_ms":1789176629652,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0088","position":{"x":1130.0,"y":-870.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629652,"virtual_time_s":1947.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":89,"wall_ts_ms":1789176629653,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0089","position":{"x":1150.0,"y":-870.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629653,"virtual_time_s":1954.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":90,"wall_ts_ms":1789176629653,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0090","position":{"x":1150.0,"y":-850.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629653,"virtual_time_s":1961.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":91,"wall_ts_ms":1789176629654,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0091","position":{"x":1170.0,"y":-850.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629654,"virtual_time_s":1968.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":92,"wall_ts_ms":1789176629654,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0092","position":{"x":1170.0,"y":-830.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629654,"virtual_time_s":1975.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":93,"wall_ts_ms":1789176629655,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0093","position":{"x":1190.0,"y":-830.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629655,"virtual_time_s":1982.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":94,"wall_ts_ms":1789176629656,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0094","position":{"x":1190.0,"y":-810.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629656,"virtual_time_s":1989.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":95,"wall_ts_ms":1789176629656,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0095","position":{"x":1210.0,"y":-810.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629656,"virtual_time_s":1996.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":96,"wall_ts_ms":1789176629657,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0096","position":{"x":1210.0,"y":-790.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629657,"virtual_time_s":2003.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":97,"wall_ts_ms":1789176629658,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0097","position":{"x":1230.0,"y":-790.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629658,"virtual_time_s":2010.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":98,"wall_ts_ms":1789176629658,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0098","position":{"x":1230.0,"y":-770.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629658,"virtual_time_s":2017.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":99,"wall_ts_ms":1789176629659,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0099","position":{"x":1250.0,"y":-770.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629659,"virtual_time_s":2024.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":100,"wall_ts_ms":1789176629660,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0100","position":{"x":1250.0,"y":-750.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629660,"virtual_time_s":2031.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":101,"wall_ts_ms":1789176629660,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0101","position":{"x":1270.0,"y":-750.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629660,"virtual_time_s":2038.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":102,"wall_ts_ms":1789176629661,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0102","position":{"x":1270.0,"y":-730.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629661,"virtual_time_s":2045.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":103,"wall_ts_ms":1789176629661,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0103","position":{"x":1290.0,"y":-730.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629661,"virtual_time_s":2052.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":104,"wall_ts_ms":1789176629662,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0104","position":{"x":1290.0,"y":-710.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629662,"virtual_time_s":2059.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":105,"wall_ts_ms":1789176629662,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0105","position":{"x":1310.0,"y":-710.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629662,"virtual_time_s":2066.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":106,"wall_ts_ms":1789176629663,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0106","position":{"x":1310.0,"y":-690.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629663,"virtual_time_s":2073.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":107,"wall_ts_ms":1789176629664,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0107","position":{"x":1330.0,"y":-690.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629664,"virtual_time_s":2080.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":108,"wall_ts_ms":1789176629664,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0108","position":{"x":1330.0,"y":-670.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629664,"virtual_time_s":2087.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":109,"wall_ts_ms":1789176629665,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0109","position":{"x":1350.0,"y":-670.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629665,"virtual_time_s":2094.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":110,"wall_ts_ms":1789176629666,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0110","position":{"x":1350.0,"y":-650.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629666,"virtual_time_s":2101.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":111,"wall_ts_ms":1789176629666,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0111","position":{"x":1370.0,"y":-650.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629666,"virtual_time_s":2108.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":112,"wall_ts_ms":1789176629667,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0112","position":{"x":1370.0,"y":-630.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629667,"virtual_time_s":2115.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":113,"wall_ts_ms":1789176629667,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0113","position":{"x":1390.0,"y":-630.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629667,"virtual_time_s":2122.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":114,"wall_ts_ms":1789176629668,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0114","position":{"x":1390.0,"y":-610.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629668,"virtual_time_s":2129.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":115,"wall_ts_ms":1789176629669,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0115","position":{"x":1410.0,"y":-610.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629669,"virtual_time_s":2136.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":116,"wall_ts_ms":1789176629669,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0116","position":{"x":1410.0,"y":-590.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629669,"virtual_time_s":2143.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":117,"wall_ts_ms":1789176629670,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0117","position":{"x":1430.0,"y":-590.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629670,"virtual_time_s":2150.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":118,"wall_ts_ms":1789176629670,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0118","position":{"x":1430.0,"y":-570.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629670,"virtual_time_s":2157.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":119,"wall_ts_ms":1789176629671,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0119","position":{"x":1450.0,"y":-570.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629671,"virtual_time_s":2164.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":120,"wall_ts_ms":1789176629672,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0120","position":{"x":1450.0,"y":-550.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629671,"virtual_time_s":2171.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":121,"wall_ts_ms":1789176629672,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0121","position":{"x":1470.0,"y":-550.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629672,"virtual_time_s":2178.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":122,"wall_ts_ms":1789176629673,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0122","position":{"x":1470.0,"y":-530.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629673,"virtual_time_s":2185.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":123,"wall_ts_ms":1789176629673,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0123","position":{"x":1490.0,"y":-530.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629673,"virtual_time_s":2192.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":124,"wall_ts_ms":1789176629674,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0124","position":{"x":1490.0,"y":-510.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629674,"virtual_time_s":2199.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":125,"wall_ts_ms":1789176629674,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0125","position":{"x":1510.0,"y":-510.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629674,"virtual_time_s":2206.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":126,"wall_ts_ms":1789176629675,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0126","position":{"x":1510.0,"y":-490.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629675,"virtual_time_s":2213.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":127,"wall_ts_ms":1789176629675,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0127","position":{"x":1510.0,"y":-470.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629675,"virtual_time_s":2220.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":128,"wall_ts_ms":1789176629676,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0128","position":{"x":1530.0,"y":-470.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629676,"virtual_time_s":2227.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":129,"wall_ts_ms":1789176629676,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0129","position":{"x":1530.0,"y":-490.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629676,"virtual_time_s":2234.725602,"clear_result":"no_target_in_range"}} +{"event":"action","seq":130,"wall_ts_ms":1789176629677,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0130","position":{"x":1550.0,"y":-470.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629677,"virtual_time_s":2243.382456,"clear_result":"no_target_in_range"}} +{"event":"action","seq":131,"wall_ts_ms":1789176629677,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0131","position":{"x":1550.0,"y":-450.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629677,"virtual_time_s":2250.382456,"clear_result":"no_target_in_range"}} +{"event":"action","seq":132,"wall_ts_ms":1789176629678,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0132","position":{"x":1530.0,"y":-450.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629678,"virtual_time_s":2257.382456,"clear_result":"no_target_in_range"}} +{"event":"action","seq":133,"wall_ts_ms":1789176629678,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0133","position":{"x":1550.0,"y":-430.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629678,"virtual_time_s":2266.03931,"clear_result":"no_target_in_range"}} +{"event":"action","seq":134,"wall_ts_ms":1789176629679,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0134","position":{"x":1570.0,"y":-430.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629679,"virtual_time_s":2273.03931,"clear_result":"no_target_in_range"}} +{"event":"action","seq":135,"wall_ts_ms":1789176629679,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0135","position":{"x":1570.0,"y":-450.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629679,"virtual_time_s":2280.03931,"clear_result":"no_target_in_range"}} +{"event":"action","seq":136,"wall_ts_ms":1789176629680,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0136","position":{"x":1590.0,"y":-430.0},"channel":7},"response":{"accepted":true,"real_timestamp_ms":1789176629680,"virtual_time_s":2290.696164,"clear_result":"success"}} +{"event":"action","seq":137,"wall_ts_ms":1789176629790,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0137","position":{"x":1429.8624502943494,"y":-654.1112669539796},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789176629790,"virtual_time_s":2351.785145,"measure_result":"direction","svd_deg":157.78}} +{"event":"action","seq":138,"wall_ts_ms":1789176629806,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0138","position":{"x":739.7053147276195,"y":-388.5273903936236},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789176629806,"virtual_time_s":2504.683984,"measure_result":"direction","svd_deg":126.53}} +{"event":"action","seq":139,"wall_ts_ms":1789176629815,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0139","position":{"x":737.259244277467,"y":-379.09950798866356},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789176629815,"virtual_time_s":2511.63199,"measure_result":"direction","svd_deg":131.0}} +{"event":"action","seq":140,"wall_ts_ms":1789176629816,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0140","position":{"x":710.6302761970189,"y":-349.5302324286764},"channel":10},"response":{"accepted":true,"real_timestamp_ms":1789176629816,"virtual_time_s":2524.590492,"clear_result":"success"}} +{"event":"action","seq":141,"wall_ts_ms":1789176629817,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0141","position":{"x":800.0,"y":0.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176629817,"virtual_time_s":2602.745417,"measure_result":"no_signal"}} +{"event":"action","seq":142,"wall_ts_ms":1789176629818,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0142","position":{"x":800.0,"y":0.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176629818,"virtual_time_s":2608.745417,"measure_result":"no_signal"}} +{"event":"action","seq":143,"wall_ts_ms":1789176629818,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0143","position":{"x":800.0,"y":0.0},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789176629818,"virtual_time_s":2614.745417,"measure_result":"direction","svd_deg":63.87}} +{"event":"action","seq":144,"wall_ts_ms":1789176629851,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0144","position":{"x":800.0,"y":0.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176629851,"virtual_time_s":2620.745417,"measure_result":"no_signal"}} +{"event":"action","seq":145,"wall_ts_ms":1789176629851,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0145","position":{"x":800.0,"y":0.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176629851,"virtual_time_s":2626.745417,"measure_result":"no_signal"}} +{"event":"action","seq":146,"wall_ts_ms":1789176629852,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0146","position":{"x":800.0,"y":0.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176629852,"virtual_time_s":2632.745417,"measure_result":"no_signal"}} +{"event":"action","seq":147,"wall_ts_ms":1789176629852,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0147","position":{"x":800.0,"y":0.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176629852,"virtual_time_s":2638.745417,"measure_result":"no_signal"}} +{"event":"action","seq":148,"wall_ts_ms":1789176629853,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0148","position":{"x":800.0,"y":0.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176629853,"virtual_time_s":2644.745417,"measure_result":"no_signal"}} +{"event":"action","seq":149,"wall_ts_ms":1789176629853,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0149","position":{"x":800.0,"y":0.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176629853,"virtual_time_s":2650.745417,"measure_result":"no_signal"}} +{"event":"action","seq":150,"wall_ts_ms":1789176629854,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0150","position":{"x":800.0,"y":0.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176629854,"virtual_time_s":2656.745417,"measure_result":"no_signal"}} +{"event":"action","seq":151,"wall_ts_ms":1789176629854,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0151","position":{"x":800.0,"y":0.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176629854,"virtual_time_s":2662.745417,"measure_result":"no_signal"}} +{"event":"action","seq":152,"wall_ts_ms":1789176629944,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0152","position":{"x":615.2131848563207,"y":129.68975025133534},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789176629944,"virtual_time_s":2713.89654,"measure_result":"direction","svd_deg":53.64}} +{"event":"action","seq":153,"wall_ts_ms":1789176629973,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0153","position":{"x":1177.7314832954046,"y":943.2140959095032},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789176629973,"virtual_time_s":2916.709451,"measure_result":"direction","svd_deg":31.61}} +{"event":"action","seq":154,"wall_ts_ms":1789176629974,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0154","position":{"x":1279.8090675459375,"y":1006.3704010851982},"channel":4},"response":{"accepted":true,"real_timestamp_ms":1789176629974,"virtual_time_s":2945.716577,"clear_result":"success"}} +{"event":"action","seq":155,"wall_ts_ms":1789176629974,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0155","position":{"x":1000.0,"y":1000.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176629974,"virtual_time_s":3007.692892,"measure_result":"no_signal"}} +{"event":"action","seq":156,"wall_ts_ms":1789176629975,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0156","position":{"x":1000.0,"y":1000.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176629975,"virtual_time_s":3013.692892,"measure_result":"no_signal"}} +{"event":"action","seq":157,"wall_ts_ms":1789176629976,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0157","position":{"x":1000.0,"y":1000.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176629975,"virtual_time_s":3019.692892,"measure_result":"direction","svd_deg":139.28}} +{"event":"action","seq":158,"wall_ts_ms":1789176630005,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0158","position":{"x":1000.0,"y":1000.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630005,"virtual_time_s":3025.692892,"measure_result":"no_signal"}} +{"event":"action","seq":159,"wall_ts_ms":1789176630006,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0159","position":{"x":1000.0,"y":1000.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630006,"virtual_time_s":3031.692892,"measure_result":"no_signal"}} +{"event":"action","seq":160,"wall_ts_ms":1789176630007,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0160","position":{"x":1000.0,"y":1000.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630007,"virtual_time_s":3037.692892,"measure_result":"no_signal"}} +{"event":"action","seq":161,"wall_ts_ms":1789176630008,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0161","position":{"x":1000.0,"y":1000.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630008,"virtual_time_s":3043.692892,"measure_result":"no_signal"}} +{"event":"action","seq":162,"wall_ts_ms":1789176630008,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0162","position":{"x":1000.0,"y":1000.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630008,"virtual_time_s":3049.692892,"measure_result":"no_signal"}} +{"event":"action","seq":163,"wall_ts_ms":1789176630009,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0163","position":{"x":1000.0,"y":1000.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630009,"virtual_time_s":3055.692892,"measure_result":"no_signal"}} +{"event":"action","seq":164,"wall_ts_ms":1789176630009,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0164","position":{"x":1000.0,"y":1000.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630009,"virtual_time_s":3061.692892,"measure_result":"no_signal"}} +{"event":"action","seq":165,"wall_ts_ms":1789176630102,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0165","position":{"x":961.1212618824487,"y":957.3588710610661},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630102,"virtual_time_s":3079.233814,"measure_result":"direction","svd_deg":134.72}} +{"event":"action","seq":166,"wall_ts_ms":1789176630157,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0166","position":{"x":727.4962312194393,"y":1188.2072757884716},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630156,"virtual_time_s":3149.921451,"measure_result":"direction","svd_deg":134.94}} +{"event":"action","seq":167,"wall_ts_ms":1789176630212,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0167","position":{"x":644.8369478160281,"y":1264.9765735176386},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630212,"virtual_time_s":3177.483439,"measure_result":"direction","svd_deg":133.41}} +{"event":"action","seq":168,"wall_ts_ms":1789176630247,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0168","position":{"x":602.1706583987492,"y":1317.180739025646},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630247,"virtual_time_s":3195.967781,"measure_result":"direction","svd_deg":136.01}} +{"event":"action","seq":169,"wall_ts_ms":1789176630277,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0169","position":{"x":593.2790406267442,"y":1325.43794313003},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630277,"virtual_time_s":3203.39465,"measure_result":"direction","svd_deg":135.64}} +{"event":"action","seq":170,"wall_ts_ms":1789176630306,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0170","position":{"x":593.2790406267442,"y":1325.43794313003},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630306,"virtual_time_s":3208.39465,"measure_result":"direction","svd_deg":135.64}} +{"event":"action","seq":171,"wall_ts_ms":1789176630337,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0171","position":{"x":593.2790406267442,"y":1325.43794313003},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630337,"virtual_time_s":3213.39465,"measure_result":"direction","svd_deg":135.64}} +{"event":"action","seq":172,"wall_ts_ms":1789176630367,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0172","position":{"x":593.2790406267442,"y":1325.43794313003},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630367,"virtual_time_s":3218.39465,"measure_result":"direction","svd_deg":135.64}} +{"event":"action","seq":173,"wall_ts_ms":1789176630369,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0173","position":{"x":530.0,"y":1390.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630369,"virtual_time_s":3239.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":174,"wall_ts_ms":1789176630369,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0174","position":{"x":510.0,"y":1390.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630369,"virtual_time_s":3246.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":175,"wall_ts_ms":1789176630370,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0175","position":{"x":510.0,"y":1410.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630370,"virtual_time_s":3253.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":176,"wall_ts_ms":1789176630370,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0176","position":{"x":490.0,"y":1410.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630370,"virtual_time_s":3260.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":177,"wall_ts_ms":1789176630371,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0177","position":{"x":490.0,"y":1430.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630371,"virtual_time_s":3267.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":178,"wall_ts_ms":1789176630372,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0178","position":{"x":470.0,"y":1430.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630372,"virtual_time_s":3274.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":179,"wall_ts_ms":1789176630372,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0179","position":{"x":470.0,"y":1450.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630372,"virtual_time_s":3281.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":180,"wall_ts_ms":1789176630373,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0180","position":{"x":450.0,"y":1450.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630373,"virtual_time_s":3288.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":181,"wall_ts_ms":1789176630373,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0181","position":{"x":450.0,"y":1470.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630373,"virtual_time_s":3295.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":182,"wall_ts_ms":1789176630374,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0182","position":{"x":430.0,"y":1470.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630374,"virtual_time_s":3302.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":183,"wall_ts_ms":1789176630375,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0183","position":{"x":430.0,"y":1490.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630375,"virtual_time_s":3309.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":184,"wall_ts_ms":1789176630375,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0184","position":{"x":410.0,"y":1490.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630375,"virtual_time_s":3316.475022,"clear_result":"no_target_in_range"}} +{"event":"action","seq":185,"wall_ts_ms":1789176630376,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0185","position":{"x":410.0,"y":1510.0},"channel":5},"response":{"accepted":true,"real_timestamp_ms":1789176630376,"virtual_time_s":3325.475022,"clear_result":"success"}} +{"event":"action","seq":186,"wall_ts_ms":1789176630376,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0186","position":{"x":400.0,"y":1800.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630376,"virtual_time_s":3389.509495,"measure_result":"no_signal"}} +{"event":"action","seq":187,"wall_ts_ms":1789176630377,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0187","position":{"x":400.0,"y":1800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630377,"virtual_time_s":3395.509495,"measure_result":"no_signal"}} +{"event":"action","seq":188,"wall_ts_ms":1789176630562,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0188","position":{"x":400.0,"y":1800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630559,"virtual_time_s":3401.509495,"measure_result":"no_signal"}} +{"event":"action","seq":189,"wall_ts_ms":1789176630564,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0189","position":{"x":400.0,"y":1800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630564,"virtual_time_s":3407.509495,"measure_result":"no_signal"}} +{"event":"action","seq":190,"wall_ts_ms":1789176630565,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0190","position":{"x":400.0,"y":1800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630565,"virtual_time_s":3413.509495,"measure_result":"no_signal"}} +{"event":"action","seq":191,"wall_ts_ms":1789176630565,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0191","position":{"x":400.0,"y":1800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630565,"virtual_time_s":3419.509495,"measure_result":"no_signal"}} +{"event":"action","seq":192,"wall_ts_ms":1789176630566,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0192","position":{"x":400.0,"y":1800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630566,"virtual_time_s":3425.509495,"measure_result":"no_signal"}} +{"event":"action","seq":193,"wall_ts_ms":1789176630568,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0193","position":{"x":400.0,"y":1800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630568,"virtual_time_s":3431.509495,"measure_result":"no_signal"}} +{"event":"action","seq":194,"wall_ts_ms":1789176630569,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0194","position":{"x":400.0,"y":1800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630569,"virtual_time_s":3437.509495,"measure_result":"no_signal"}} +{"event":"action","seq":195,"wall_ts_ms":1789176630570,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0195","position":{"x":-200.0,"y":1800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630570,"virtual_time_s":3562.509495,"measure_result":"no_signal"}} +{"event":"action","seq":196,"wall_ts_ms":1789176630571,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0196","position":{"x":-200.0,"y":1800.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630571,"virtual_time_s":3568.509495,"measure_result":"no_signal"}} +{"event":"action","seq":197,"wall_ts_ms":1789176630572,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0197","position":{"x":-200.0,"y":1800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630572,"virtual_time_s":3574.509495,"measure_result":"no_signal"}} +{"event":"action","seq":198,"wall_ts_ms":1789176630572,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0198","position":{"x":-200.0,"y":1800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630572,"virtual_time_s":3580.509495,"measure_result":"no_signal"}} +{"event":"action","seq":199,"wall_ts_ms":1789176630573,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0199","position":{"x":-200.0,"y":1800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630573,"virtual_time_s":3586.509495,"measure_result":"no_signal"}} +{"event":"action","seq":200,"wall_ts_ms":1789176630574,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0200","position":{"x":-200.0,"y":1800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630574,"virtual_time_s":3592.509495,"measure_result":"no_signal"}} +{"event":"action","seq":201,"wall_ts_ms":1789176630575,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0201","position":{"x":-200.0,"y":1800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630575,"virtual_time_s":3598.509495,"measure_result":"no_signal"}} +{"event":"action","seq":202,"wall_ts_ms":1789176630575,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0202","position":{"x":-200.0,"y":1800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630575,"virtual_time_s":3604.509495,"measure_result":"no_signal"}} +{"event":"action","seq":203,"wall_ts_ms":1789176630576,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0203","position":{"x":-200.0,"y":1800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630576,"virtual_time_s":3610.509495,"measure_result":"no_signal"}} +{"event":"action","seq":204,"wall_ts_ms":1789176630577,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0204","position":{"x":0.0,"y":1000.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630577,"virtual_time_s":3780.43372,"measure_result":"no_signal"}} +{"event":"action","seq":205,"wall_ts_ms":1789176630577,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0205","position":{"x":0.0,"y":1000.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630577,"virtual_time_s":3786.43372,"measure_result":"no_signal"}} +{"event":"action","seq":206,"wall_ts_ms":1789176630578,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0206","position":{"x":0.0,"y":1000.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630578,"virtual_time_s":3792.43372,"measure_result":"no_signal"}} +{"event":"action","seq":207,"wall_ts_ms":1789176630578,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0207","position":{"x":0.0,"y":1000.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630578,"virtual_time_s":3798.43372,"measure_result":"no_signal"}} +{"event":"action","seq":208,"wall_ts_ms":1789176630579,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0208","position":{"x":0.0,"y":1000.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630579,"virtual_time_s":3804.43372,"measure_result":"no_signal"}} +{"event":"action","seq":209,"wall_ts_ms":1789176630579,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0209","position":{"x":0.0,"y":1000.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630579,"virtual_time_s":3810.43372,"measure_result":"no_signal"}} +{"event":"action","seq":210,"wall_ts_ms":1789176630580,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0210","position":{"x":0.0,"y":1000.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630580,"virtual_time_s":3816.43372,"measure_result":"no_signal"}} +{"event":"action","seq":211,"wall_ts_ms":1789176630580,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0211","position":{"x":0.0,"y":1000.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630580,"virtual_time_s":3822.43372,"measure_result":"no_signal"}} +{"event":"action","seq":212,"wall_ts_ms":1789176630581,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0212","position":{"x":0.0,"y":1000.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630581,"virtual_time_s":3828.43372,"measure_result":"no_signal"}} +{"event":"action","seq":213,"wall_ts_ms":1789176630581,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0213","position":{"x":-200.0,"y":400.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630581,"virtual_time_s":3959.924826,"measure_result":"no_signal"}} +{"event":"action","seq":214,"wall_ts_ms":1789176630582,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0214","position":{"x":-200.0,"y":400.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630582,"virtual_time_s":3965.924826,"measure_result":"no_signal"}} +{"event":"action","seq":215,"wall_ts_ms":1789176630582,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0215","position":{"x":-200.0,"y":400.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630582,"virtual_time_s":3971.924826,"measure_result":"no_signal"}} +{"event":"action","seq":216,"wall_ts_ms":1789176630583,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0216","position":{"x":-200.0,"y":400.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630583,"virtual_time_s":3977.924826,"measure_result":"no_signal"}} +{"event":"action","seq":217,"wall_ts_ms":1789176630584,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0217","position":{"x":-200.0,"y":400.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630583,"virtual_time_s":3983.924826,"measure_result":"no_signal"}} +{"event":"action","seq":218,"wall_ts_ms":1789176630584,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0218","position":{"x":-200.0,"y":400.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630584,"virtual_time_s":3989.924826,"measure_result":"no_signal"}} +{"event":"action","seq":219,"wall_ts_ms":1789176630585,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0219","position":{"x":-200.0,"y":400.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630585,"virtual_time_s":3995.924826,"measure_result":"no_signal"}} +{"event":"action","seq":220,"wall_ts_ms":1789176630585,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0220","position":{"x":-200.0,"y":400.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630585,"virtual_time_s":4001.924826,"measure_result":"no_signal"}} +{"event":"action","seq":221,"wall_ts_ms":1789176630586,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0221","position":{"x":-200.0,"y":400.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630586,"virtual_time_s":4007.924826,"measure_result":"no_signal"}} +{"event":"action","seq":222,"wall_ts_ms":1789176630586,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0222","position":{"x":-800.0,"y":0.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630586,"virtual_time_s":4157.146877,"measure_result":"no_signal"}} +{"event":"action","seq":223,"wall_ts_ms":1789176630587,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0223","position":{"x":-800.0,"y":0.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630587,"virtual_time_s":4163.146877,"measure_result":"direction","svd_deg":244.07999999999998}} +{"event":"action","seq":224,"wall_ts_ms":1789176630618,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0224","position":{"x":-800.0,"y":0.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630618,"virtual_time_s":4169.146877,"measure_result":"no_signal"}} +{"event":"action","seq":225,"wall_ts_ms":1789176630619,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0225","position":{"x":-800.0,"y":0.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630619,"virtual_time_s":4175.146877,"measure_result":"no_signal"}} +{"event":"action","seq":226,"wall_ts_ms":1789176630619,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0226","position":{"x":-800.0,"y":0.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630619,"virtual_time_s":4181.146877,"measure_result":"no_signal"}} +{"event":"action","seq":227,"wall_ts_ms":1789176630620,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0227","position":{"x":-800.0,"y":0.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630620,"virtual_time_s":4187.146877,"measure_result":"no_signal"}} +{"event":"action","seq":228,"wall_ts_ms":1789176630620,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0228","position":{"x":-800.0,"y":0.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630620,"virtual_time_s":4193.146877,"measure_result":"no_signal"}} +{"event":"action","seq":229,"wall_ts_ms":1789176630621,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0229","position":{"x":-800.0,"y":0.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630621,"virtual_time_s":4199.146877,"measure_result":"no_signal"}} +{"event":"action","seq":230,"wall_ts_ms":1789176630622,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0230","position":{"x":-800.0,"y":0.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630622,"virtual_time_s":4205.146877,"measure_result":"no_signal"}} +{"event":"action","seq":231,"wall_ts_ms":1789176630712,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0231","position":{"x":-612.7393373735924,"y":-130.91442858438631},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630712,"virtual_time_s":4256.843767,"measure_result":"direction","svd_deg":222.42}} +{"event":"action","seq":232,"wall_ts_ms":1789176630729,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0232","position":{"x":-1006.5000668981338,"y":-486.82119505919434},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630729,"virtual_time_s":4367.997832,"measure_result":"direction","svd_deg":224.01}} +{"event":"action","seq":233,"wall_ts_ms":1789176630741,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0233","position":{"x":-1028.1817467480657,"y":-507.3587406401402},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630741,"virtual_time_s":4378.970724,"measure_result":"direction","svd_deg":224.99}} +{"event":"action","seq":234,"wall_ts_ms":1789176630755,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0234","position":{"x":-1029.2304268190826,"y":-508.76489554880675},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630755,"virtual_time_s":4384.321552,"measure_result":"direction","svd_deg":224.82}} +{"event":"action","seq":235,"wall_ts_ms":1789176630769,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0235","position":{"x":-1029.6867212721636,"y":-509.3769214602712},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630769,"virtual_time_s":4389.474232,"measure_result":"direction","svd_deg":225.27}} +{"event":"action","seq":236,"wall_ts_ms":1789176630782,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0236","position":{"x":-1030.2048717132175,"y":-510.072059916583},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630782,"virtual_time_s":4394.647633,"measure_result":"direction","svd_deg":224.0}} +{"event":"action","seq":237,"wall_ts_ms":1789176630795,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0237","position":{"x":-1030.5146387597,"y":-510.13828087271185},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630795,"virtual_time_s":4399.710986,"measure_result":"direction","svd_deg":224.73}} +{"event":"action","seq":238,"wall_ts_ms":1789176630807,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0238","position":{"x":-1030.5146387597,"y":-510.13828087271185},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630807,"virtual_time_s":4404.710986,"measure_result":"direction","svd_deg":224.73}} +{"event":"action","seq":239,"wall_ts_ms":1789176630808,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0239","position":{"x":-1050.0,"y":-530.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630808,"virtual_time_s":4413.275758,"clear_result":"no_target_in_range"}} +{"event":"action","seq":240,"wall_ts_ms":1789176630809,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0240","position":{"x":-1070.0,"y":-530.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630809,"virtual_time_s":4420.275758,"clear_result":"no_target_in_range"}} +{"event":"action","seq":241,"wall_ts_ms":1789176630810,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0241","position":{"x":-1070.0,"y":-550.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630810,"virtual_time_s":4427.275758,"clear_result":"no_target_in_range"}} +{"event":"action","seq":242,"wall_ts_ms":1789176630810,"method":"POST","path":"/clear","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0242","position":{"x":-1090.0,"y":-550.0},"channel":1},"response":{"accepted":true,"real_timestamp_ms":1789176630810,"virtual_time_s":4436.275758,"clear_result":"success"}} +{"event":"action","seq":243,"wall_ts_ms":1789176630811,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0243","position":{"x":-1200.0,"y":-1000.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630811,"virtual_time_s":4534.925637,"measure_result":"no_signal"}} +{"event":"action","seq":244,"wall_ts_ms":1789176630811,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0244","position":{"x":-1200.0,"y":-1000.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630811,"virtual_time_s":4540.925637,"measure_result":"no_signal"}} +{"event":"action","seq":245,"wall_ts_ms":1789176630812,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0245","position":{"x":-1200.0,"y":-1000.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630812,"virtual_time_s":4546.925637,"measure_result":"no_signal"}} +{"event":"action","seq":246,"wall_ts_ms":1789176630812,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0246","position":{"x":-1200.0,"y":-1000.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630812,"virtual_time_s":4552.925637,"measure_result":"no_signal"}} +{"event":"action","seq":247,"wall_ts_ms":1789176630813,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0247","position":{"x":-1200.0,"y":-1000.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630813,"virtual_time_s":4558.925637,"measure_result":"no_signal"}} +{"event":"action","seq":248,"wall_ts_ms":1789176630814,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0248","position":{"x":-1200.0,"y":-1000.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630814,"virtual_time_s":4564.925637,"measure_result":"no_signal"}} +{"event":"action","seq":249,"wall_ts_ms":1789176630814,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0249","position":{"x":-1200.0,"y":-1000.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630814,"virtual_time_s":4570.925637,"measure_result":"no_signal"}} +{"event":"action","seq":250,"wall_ts_ms":1789176630815,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0250","position":{"x":-1200.0,"y":-1000.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630815,"virtual_time_s":4576.925637,"measure_result":"no_signal"}} +{"event":"action","seq":251,"wall_ts_ms":1789176630815,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0251","position":{"x":-600.0,"y":-1000.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630815,"virtual_time_s":4701.925637,"measure_result":"no_signal"}} +{"event":"action","seq":252,"wall_ts_ms":1789176630816,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0252","position":{"x":-600.0,"y":-1000.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630816,"virtual_time_s":4707.925637,"measure_result":"no_signal"}} +{"event":"action","seq":253,"wall_ts_ms":1789176630816,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0253","position":{"x":-600.0,"y":-1000.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630816,"virtual_time_s":4713.925637,"measure_result":"no_signal"}} +{"event":"action","seq":254,"wall_ts_ms":1789176630817,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0254","position":{"x":-600.0,"y":-1000.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630817,"virtual_time_s":4719.925637,"measure_result":"no_signal"}} +{"event":"action","seq":255,"wall_ts_ms":1789176630817,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0255","position":{"x":-600.0,"y":-1000.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630817,"virtual_time_s":4725.925637,"measure_result":"no_signal"}} +{"event":"action","seq":256,"wall_ts_ms":1789176630818,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0256","position":{"x":-600.0,"y":-1000.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630818,"virtual_time_s":4731.925637,"measure_result":"no_signal"}} +{"event":"action","seq":257,"wall_ts_ms":1789176630818,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0257","position":{"x":-600.0,"y":-1000.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630818,"virtual_time_s":4737.925637,"measure_result":"no_signal"}} +{"event":"action","seq":258,"wall_ts_ms":1789176630819,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0258","position":{"x":-600.0,"y":-1000.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630819,"virtual_time_s":4743.925637,"measure_result":"no_signal"}} +{"event":"action","seq":259,"wall_ts_ms":1789176630820,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0259","position":{"x":0.0,"y":-1000.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630820,"virtual_time_s":4868.925637,"measure_result":"no_signal"}} +{"event":"action","seq":260,"wall_ts_ms":1789176630820,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0260","position":{"x":0.0,"y":-1000.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630820,"virtual_time_s":4874.925637,"measure_result":"no_signal"}} +{"event":"action","seq":261,"wall_ts_ms":1789176630821,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0261","position":{"x":0.0,"y":-1000.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630821,"virtual_time_s":4880.925637,"measure_result":"no_signal"}} +{"event":"action","seq":262,"wall_ts_ms":1789176630821,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0262","position":{"x":0.0,"y":-1000.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630821,"virtual_time_s":4886.925637,"measure_result":"no_signal"}} +{"event":"action","seq":263,"wall_ts_ms":1789176630822,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0263","position":{"x":0.0,"y":-1000.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630822,"virtual_time_s":4892.925637,"measure_result":"no_signal"}} +{"event":"action","seq":264,"wall_ts_ms":1789176630822,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0264","position":{"x":0.0,"y":-1000.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630822,"virtual_time_s":4898.925637,"measure_result":"no_signal"}} +{"event":"action","seq":265,"wall_ts_ms":1789176630823,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0265","position":{"x":0.0,"y":-1000.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630823,"virtual_time_s":4904.925637,"measure_result":"no_signal"}} +{"event":"action","seq":266,"wall_ts_ms":1789176630823,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0266","position":{"x":0.0,"y":-1000.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630823,"virtual_time_s":4910.925637,"measure_result":"no_signal"}} +{"event":"action","seq":267,"wall_ts_ms":1789176630824,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0267","position":{"x":400.0,"y":-800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630824,"virtual_time_s":5005.368356,"measure_result":"no_signal"}} +{"event":"action","seq":268,"wall_ts_ms":1789176630824,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0268","position":{"x":400.0,"y":-800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630824,"virtual_time_s":5011.368356,"measure_result":"no_signal"}} +{"event":"action","seq":269,"wall_ts_ms":1789176630825,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0269","position":{"x":400.0,"y":-800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630825,"virtual_time_s":5017.368356,"measure_result":"no_signal"}} +{"event":"action","seq":270,"wall_ts_ms":1789176630826,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0270","position":{"x":400.0,"y":-800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630826,"virtual_time_s":5023.368356,"measure_result":"no_signal"}} +{"event":"action","seq":271,"wall_ts_ms":1789176630826,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0271","position":{"x":400.0,"y":-800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630826,"virtual_time_s":5029.368356,"measure_result":"no_signal"}} +{"event":"action","seq":272,"wall_ts_ms":1789176630827,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0272","position":{"x":400.0,"y":-800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630827,"virtual_time_s":5035.368356,"measure_result":"no_signal"}} +{"event":"action","seq":273,"wall_ts_ms":1789176630827,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0273","position":{"x":400.0,"y":-800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630827,"virtual_time_s":5041.368356,"measure_result":"no_signal"}} +{"event":"action","seq":274,"wall_ts_ms":1789176630828,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0274","position":{"x":400.0,"y":-800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630828,"virtual_time_s":5047.368356,"measure_result":"no_signal"}} +{"event":"action","seq":275,"wall_ts_ms":1789176630828,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0275","position":{"x":1000.0,"y":-1000.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630828,"virtual_time_s":5178.859462,"measure_result":"no_signal"}} +{"event":"action","seq":276,"wall_ts_ms":1789176630829,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0276","position":{"x":1000.0,"y":-1000.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630829,"virtual_time_s":5184.859462,"measure_result":"no_signal"}} +{"event":"action","seq":277,"wall_ts_ms":1789176630829,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0277","position":{"x":1000.0,"y":-1000.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630829,"virtual_time_s":5190.859462,"measure_result":"no_signal"}} +{"event":"action","seq":278,"wall_ts_ms":1789176630830,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0278","position":{"x":1000.0,"y":-1000.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630830,"virtual_time_s":5196.859462,"measure_result":"no_signal"}} +{"event":"action","seq":279,"wall_ts_ms":1789176630830,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0279","position":{"x":1000.0,"y":-1000.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630830,"virtual_time_s":5202.859462,"measure_result":"no_signal"}} +{"event":"action","seq":280,"wall_ts_ms":1789176630831,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0280","position":{"x":1000.0,"y":-1000.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630831,"virtual_time_s":5208.859462,"measure_result":"no_signal"}} +{"event":"action","seq":281,"wall_ts_ms":1789176630832,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0281","position":{"x":1000.0,"y":-1000.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630832,"virtual_time_s":5214.859462,"measure_result":"no_signal"}} +{"event":"action","seq":282,"wall_ts_ms":1789176630832,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0282","position":{"x":1000.0,"y":-1000.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630832,"virtual_time_s":5220.859462,"measure_result":"no_signal"}} +{"event":"action","seq":283,"wall_ts_ms":1789176630833,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0283","position":{"x":1000.0,"y":-1600.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630833,"virtual_time_s":5345.859462,"measure_result":"no_signal"}} +{"event":"action","seq":284,"wall_ts_ms":1789176630833,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0284","position":{"x":1000.0,"y":-1600.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630833,"virtual_time_s":5351.859462,"measure_result":"no_signal"}} +{"event":"action","seq":285,"wall_ts_ms":1789176630834,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0285","position":{"x":1000.0,"y":-1600.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630834,"virtual_time_s":5357.859462,"measure_result":"no_signal"}} +{"event":"action","seq":286,"wall_ts_ms":1789176630834,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0286","position":{"x":1000.0,"y":-1600.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630834,"virtual_time_s":5363.859462,"measure_result":"no_signal"}} +{"event":"action","seq":287,"wall_ts_ms":1789176630835,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0287","position":{"x":1000.0,"y":-1600.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630835,"virtual_time_s":5369.859462,"measure_result":"no_signal"}} +{"event":"action","seq":288,"wall_ts_ms":1789176630835,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0288","position":{"x":1000.0,"y":-1600.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630835,"virtual_time_s":5375.859462,"measure_result":"no_signal"}} +{"event":"action","seq":289,"wall_ts_ms":1789176630836,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0289","position":{"x":1000.0,"y":-1600.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630836,"virtual_time_s":5381.859462,"measure_result":"no_signal"}} +{"event":"action","seq":290,"wall_ts_ms":1789176630836,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0290","position":{"x":1000.0,"y":-1600.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630836,"virtual_time_s":5387.859462,"measure_result":"no_signal"}} +{"event":"action","seq":291,"wall_ts_ms":1789176630837,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0291","position":{"x":800.0,"y":-1800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630837,"virtual_time_s":5449.428004,"measure_result":"no_signal"}} +{"event":"action","seq":292,"wall_ts_ms":1789176630837,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0292","position":{"x":800.0,"y":-1800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630837,"virtual_time_s":5455.428004,"measure_result":"no_signal"}} +{"event":"action","seq":293,"wall_ts_ms":1789176630838,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0293","position":{"x":800.0,"y":-1800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630838,"virtual_time_s":5461.428004,"measure_result":"no_signal"}} +{"event":"action","seq":294,"wall_ts_ms":1789176630838,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0294","position":{"x":800.0,"y":-1800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630838,"virtual_time_s":5467.428004,"measure_result":"no_signal"}} +{"event":"action","seq":295,"wall_ts_ms":1789176630839,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0295","position":{"x":800.0,"y":-1800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630839,"virtual_time_s":5473.428004,"measure_result":"no_signal"}} +{"event":"action","seq":296,"wall_ts_ms":1789176630839,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0296","position":{"x":800.0,"y":-1800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630839,"virtual_time_s":5479.428004,"measure_result":"no_signal"}} +{"event":"action","seq":297,"wall_ts_ms":1789176630840,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0297","position":{"x":800.0,"y":-1800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630840,"virtual_time_s":5485.428004,"measure_result":"no_signal"}} +{"event":"action","seq":298,"wall_ts_ms":1789176630840,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0298","position":{"x":800.0,"y":-1800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630840,"virtual_time_s":5491.428004,"measure_result":"no_signal"}} +{"event":"action","seq":299,"wall_ts_ms":1789176630841,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0299","position":{"x":-200.0,"y":-2200.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630841,"virtual_time_s":5711.834596,"measure_result":"no_signal"}} +{"event":"action","seq":300,"wall_ts_ms":1789176630841,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0300","position":{"x":-200.0,"y":-2200.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630841,"virtual_time_s":5717.834596,"measure_result":"no_signal"}} +{"event":"action","seq":301,"wall_ts_ms":1789176630842,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0301","position":{"x":-200.0,"y":-2200.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630842,"virtual_time_s":5723.834596,"measure_result":"no_signal"}} +{"event":"action","seq":302,"wall_ts_ms":1789176630842,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0302","position":{"x":-200.0,"y":-2200.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630842,"virtual_time_s":5729.834596,"measure_result":"no_signal"}} +{"event":"action","seq":303,"wall_ts_ms":1789176630843,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0303","position":{"x":-200.0,"y":-2200.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630843,"virtual_time_s":5735.834596,"measure_result":"no_signal"}} +{"event":"action","seq":304,"wall_ts_ms":1789176630843,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0304","position":{"x":-200.0,"y":-2200.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630843,"virtual_time_s":5741.834596,"measure_result":"no_signal"}} +{"event":"action","seq":305,"wall_ts_ms":1789176630844,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0305","position":{"x":-200.0,"y":-2200.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630844,"virtual_time_s":5747.834596,"measure_result":"no_signal"}} +{"event":"action","seq":306,"wall_ts_ms":1789176630844,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0306","position":{"x":-200.0,"y":-2200.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630844,"virtual_time_s":5753.834596,"measure_result":"no_signal"}} +{"event":"action","seq":307,"wall_ts_ms":1789176630845,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0307","position":{"x":-400.0,"y":-1800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630845,"virtual_time_s":5848.277315,"measure_result":"no_signal"}} +{"event":"action","seq":308,"wall_ts_ms":1789176630845,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0308","position":{"x":-400.0,"y":-1800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630845,"virtual_time_s":5854.277315,"measure_result":"no_signal"}} +{"event":"action","seq":309,"wall_ts_ms":1789176630846,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0309","position":{"x":-400.0,"y":-1800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630846,"virtual_time_s":5860.277315,"measure_result":"no_signal"}} +{"event":"action","seq":310,"wall_ts_ms":1789176630846,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0310","position":{"x":-400.0,"y":-1800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630846,"virtual_time_s":5866.277315,"measure_result":"no_signal"}} +{"event":"action","seq":311,"wall_ts_ms":1789176630847,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0311","position":{"x":-400.0,"y":-1800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630847,"virtual_time_s":5872.277315,"measure_result":"no_signal"}} +{"event":"action","seq":312,"wall_ts_ms":1789176630847,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0312","position":{"x":-400.0,"y":-1800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630847,"virtual_time_s":5878.277315,"measure_result":"no_signal"}} +{"event":"action","seq":313,"wall_ts_ms":1789176630848,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0313","position":{"x":-400.0,"y":-1800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630848,"virtual_time_s":5884.277315,"measure_result":"no_signal"}} +{"event":"action","seq":314,"wall_ts_ms":1789176630848,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0314","position":{"x":-400.0,"y":-1800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630848,"virtual_time_s":5890.277315,"measure_result":"no_signal"}} +{"event":"action","seq":315,"wall_ts_ms":1789176630849,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0315","position":{"x":-1400.0,"y":-1800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630849,"virtual_time_s":6095.277315,"measure_result":"no_signal"}} +{"event":"action","seq":316,"wall_ts_ms":1789176630849,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0316","position":{"x":-1400.0,"y":-1800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630849,"virtual_time_s":6101.277315,"measure_result":"no_signal"}} +{"event":"action","seq":317,"wall_ts_ms":1789176630850,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0317","position":{"x":-1400.0,"y":-1800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630850,"virtual_time_s":6107.277315,"measure_result":"no_signal"}} +{"event":"action","seq":318,"wall_ts_ms":1789176630850,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0318","position":{"x":-1400.0,"y":-1800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630850,"virtual_time_s":6113.277315,"measure_result":"no_signal"}} +{"event":"action","seq":319,"wall_ts_ms":1789176630851,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0319","position":{"x":-1400.0,"y":-1800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630851,"virtual_time_s":6119.277315,"measure_result":"no_signal"}} +{"event":"action","seq":320,"wall_ts_ms":1789176630851,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0320","position":{"x":-1400.0,"y":-1800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630851,"virtual_time_s":6125.277315,"measure_result":"no_signal"}} +{"event":"action","seq":321,"wall_ts_ms":1789176630852,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0321","position":{"x":-1400.0,"y":-1800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630852,"virtual_time_s":6131.277315,"measure_result":"no_signal"}} +{"event":"action","seq":322,"wall_ts_ms":1789176630852,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0322","position":{"x":-1400.0,"y":-1800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630852,"virtual_time_s":6137.277315,"measure_result":"no_signal"}} +{"event":"action","seq":323,"wall_ts_ms":1789176630853,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0323","position":{"x":-1800.0,"y":-800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630853,"virtual_time_s":6357.683907,"measure_result":"no_signal"}} +{"event":"action","seq":324,"wall_ts_ms":1789176630853,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0324","position":{"x":-1800.0,"y":-800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630853,"virtual_time_s":6363.683907,"measure_result":"no_signal"}} +{"event":"action","seq":325,"wall_ts_ms":1789176630854,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0325","position":{"x":-1800.0,"y":-800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630854,"virtual_time_s":6369.683907,"measure_result":"no_signal"}} +{"event":"action","seq":326,"wall_ts_ms":1789176630854,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0326","position":{"x":-1800.0,"y":-800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630854,"virtual_time_s":6375.683907,"measure_result":"no_signal"}} +{"event":"action","seq":327,"wall_ts_ms":1789176630855,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0327","position":{"x":-1800.0,"y":-800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630855,"virtual_time_s":6381.683907,"measure_result":"no_signal"}} +{"event":"action","seq":328,"wall_ts_ms":1789176630855,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0328","position":{"x":-1800.0,"y":-800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630855,"virtual_time_s":6387.683907,"measure_result":"no_signal"}} +{"event":"action","seq":329,"wall_ts_ms":1789176630856,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0329","position":{"x":-1800.0,"y":-800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630856,"virtual_time_s":6393.683907,"measure_result":"no_signal"}} +{"event":"action","seq":330,"wall_ts_ms":1789176630856,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0330","position":{"x":-1800.0,"y":-800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630856,"virtual_time_s":6399.683907,"measure_result":"no_signal"}} +{"event":"action","seq":331,"wall_ts_ms":1789176630857,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0331","position":{"x":-2000.0,"y":-400.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630857,"virtual_time_s":6494.126626,"measure_result":"no_signal"}} +{"event":"action","seq":332,"wall_ts_ms":1789176630857,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0332","position":{"x":-2000.0,"y":-400.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630857,"virtual_time_s":6500.126626,"measure_result":"no_signal"}} +{"event":"action","seq":333,"wall_ts_ms":1789176630858,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0333","position":{"x":-2000.0,"y":-400.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630858,"virtual_time_s":6506.126626,"measure_result":"no_signal"}} +{"event":"action","seq":334,"wall_ts_ms":1789176630858,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0334","position":{"x":-2000.0,"y":-400.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630858,"virtual_time_s":6512.126626,"measure_result":"no_signal"}} +{"event":"action","seq":335,"wall_ts_ms":1789176630859,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0335","position":{"x":-2000.0,"y":-400.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630859,"virtual_time_s":6518.126626,"measure_result":"no_signal"}} +{"event":"action","seq":336,"wall_ts_ms":1789176630859,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0336","position":{"x":-2000.0,"y":-400.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630859,"virtual_time_s":6524.126626,"measure_result":"no_signal"}} +{"event":"action","seq":337,"wall_ts_ms":1789176630860,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0337","position":{"x":-2000.0,"y":-400.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630860,"virtual_time_s":6530.126626,"measure_result":"no_signal"}} +{"event":"action","seq":338,"wall_ts_ms":1789176630860,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0338","position":{"x":-2000.0,"y":-400.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630860,"virtual_time_s":6536.126626,"measure_result":"no_signal"}} +{"event":"action","seq":339,"wall_ts_ms":1789176630861,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0339","position":{"x":-1800.0,"y":200.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630861,"virtual_time_s":6667.617732,"measure_result":"no_signal"}} +{"event":"action","seq":340,"wall_ts_ms":1789176630862,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0340","position":{"x":-1800.0,"y":200.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630862,"virtual_time_s":6673.617732,"measure_result":"no_signal"}} +{"event":"action","seq":341,"wall_ts_ms":1789176630862,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0341","position":{"x":-1800.0,"y":200.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630862,"virtual_time_s":6679.617732,"measure_result":"no_signal"}} +{"event":"action","seq":342,"wall_ts_ms":1789176630863,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0342","position":{"x":-1800.0,"y":200.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630863,"virtual_time_s":6685.617732,"measure_result":"no_signal"}} +{"event":"action","seq":343,"wall_ts_ms":1789176630863,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0343","position":{"x":-1800.0,"y":200.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630863,"virtual_time_s":6691.617732,"measure_result":"no_signal"}} +{"event":"action","seq":344,"wall_ts_ms":1789176630863,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0344","position":{"x":-1800.0,"y":200.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630863,"virtual_time_s":6697.617732,"measure_result":"no_signal"}} +{"event":"action","seq":345,"wall_ts_ms":1789176630864,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0345","position":{"x":-1800.0,"y":200.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630864,"virtual_time_s":6703.617732,"measure_result":"no_signal"}} +{"event":"action","seq":346,"wall_ts_ms":1789176630864,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0346","position":{"x":-1800.0,"y":200.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630864,"virtual_time_s":6709.617732,"measure_result":"no_signal"}} +{"event":"action","seq":347,"wall_ts_ms":1789176630865,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0347","position":{"x":-2200.0,"y":600.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630865,"virtual_time_s":6827.754817,"measure_result":"no_signal"}} +{"event":"action","seq":348,"wall_ts_ms":1789176630865,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0348","position":{"x":-2200.0,"y":600.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630865,"virtual_time_s":6833.754817,"measure_result":"no_signal"}} +{"event":"action","seq":349,"wall_ts_ms":1789176630866,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0349","position":{"x":-2200.0,"y":600.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630866,"virtual_time_s":6839.754817,"measure_result":"no_signal"}} +{"event":"action","seq":350,"wall_ts_ms":1789176630866,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0350","position":{"x":-2200.0,"y":600.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630866,"virtual_time_s":6845.754817,"measure_result":"no_signal"}} +{"event":"action","seq":351,"wall_ts_ms":1789176630867,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0351","position":{"x":-2200.0,"y":600.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630867,"virtual_time_s":6851.754817,"measure_result":"no_signal"}} +{"event":"action","seq":352,"wall_ts_ms":1789176630867,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0352","position":{"x":-2200.0,"y":600.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630867,"virtual_time_s":6857.754817,"measure_result":"no_signal"}} +{"event":"action","seq":353,"wall_ts_ms":1789176630868,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0353","position":{"x":-2200.0,"y":600.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630868,"virtual_time_s":6863.754817,"measure_result":"no_signal"}} +{"event":"action","seq":354,"wall_ts_ms":1789176630868,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0354","position":{"x":-2200.0,"y":600.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630868,"virtual_time_s":6869.754817,"measure_result":"no_signal"}} +{"event":"action","seq":355,"wall_ts_ms":1789176630869,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0355","position":{"x":-1200.0,"y":800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630869,"virtual_time_s":7078.715598,"measure_result":"no_signal"}} +{"event":"action","seq":356,"wall_ts_ms":1789176630869,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0356","position":{"x":-1200.0,"y":800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630869,"virtual_time_s":7084.715598,"measure_result":"no_signal"}} +{"event":"action","seq":357,"wall_ts_ms":1789176630870,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0357","position":{"x":-1200.0,"y":800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630870,"virtual_time_s":7090.715598,"measure_result":"no_signal"}} +{"event":"action","seq":358,"wall_ts_ms":1789176630870,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0358","position":{"x":-1200.0,"y":800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630870,"virtual_time_s":7096.715598,"measure_result":"no_signal"}} +{"event":"action","seq":359,"wall_ts_ms":1789176630870,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0359","position":{"x":-1200.0,"y":800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630870,"virtual_time_s":7102.715598,"measure_result":"no_signal"}} +{"event":"action","seq":360,"wall_ts_ms":1789176630871,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0360","position":{"x":-1200.0,"y":800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630871,"virtual_time_s":7108.715598,"measure_result":"no_signal"}} +{"event":"action","seq":361,"wall_ts_ms":1789176630871,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0361","position":{"x":-1200.0,"y":800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630871,"virtual_time_s":7114.715598,"measure_result":"no_signal"}} +{"event":"action","seq":362,"wall_ts_ms":1789176630872,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0362","position":{"x":-1200.0,"y":800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630872,"virtual_time_s":7120.715598,"measure_result":"no_signal"}} +{"event":"action","seq":363,"wall_ts_ms":1789176630872,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0363","position":{"x":-1000.0,"y":1000.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630872,"virtual_time_s":7182.28414,"measure_result":"no_signal"}} +{"event":"action","seq":364,"wall_ts_ms":1789176630873,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0364","position":{"x":-1000.0,"y":1000.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630873,"virtual_time_s":7188.28414,"measure_result":"no_signal"}} +{"event":"action","seq":365,"wall_ts_ms":1789176630873,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0365","position":{"x":-1000.0,"y":1000.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630873,"virtual_time_s":7194.28414,"measure_result":"no_signal"}} +{"event":"action","seq":366,"wall_ts_ms":1789176630874,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0366","position":{"x":-1000.0,"y":1000.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630874,"virtual_time_s":7200.28414,"measure_result":"no_signal"}} +{"event":"action","seq":367,"wall_ts_ms":1789176630874,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0367","position":{"x":-1000.0,"y":1000.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630874,"virtual_time_s":7206.28414,"measure_result":"no_signal"}} +{"event":"action","seq":368,"wall_ts_ms":1789176630875,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0368","position":{"x":-1000.0,"y":1000.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630875,"virtual_time_s":7212.28414,"measure_result":"no_signal"}} +{"event":"action","seq":369,"wall_ts_ms":1789176630875,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0369","position":{"x":-1000.0,"y":1000.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630875,"virtual_time_s":7218.28414,"measure_result":"no_signal"}} +{"event":"action","seq":370,"wall_ts_ms":1789176630876,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0370","position":{"x":-1000.0,"y":1000.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630876,"virtual_time_s":7224.28414,"measure_result":"no_signal"}} +{"event":"action","seq":371,"wall_ts_ms":1789176630876,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0371","position":{"x":-1400.0,"y":1400.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630876,"virtual_time_s":7342.421225,"measure_result":"no_signal"}} +{"event":"action","seq":372,"wall_ts_ms":1789176630877,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0372","position":{"x":-1400.0,"y":1400.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630877,"virtual_time_s":7348.421225,"measure_result":"no_signal"}} +{"event":"action","seq":373,"wall_ts_ms":1789176630877,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0373","position":{"x":-1400.0,"y":1400.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630877,"virtual_time_s":7354.421225,"measure_result":"no_signal"}} +{"event":"action","seq":374,"wall_ts_ms":1789176630877,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0374","position":{"x":-1400.0,"y":1400.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630877,"virtual_time_s":7360.421225,"measure_result":"no_signal"}} +{"event":"action","seq":375,"wall_ts_ms":1789176630878,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0375","position":{"x":-1400.0,"y":1400.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630878,"virtual_time_s":7366.421225,"measure_result":"no_signal"}} +{"event":"action","seq":376,"wall_ts_ms":1789176630878,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0376","position":{"x":-1400.0,"y":1400.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630878,"virtual_time_s":7372.421225,"measure_result":"no_signal"}} +{"event":"action","seq":377,"wall_ts_ms":1789176630879,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0377","position":{"x":-1400.0,"y":1400.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630879,"virtual_time_s":7378.421225,"measure_result":"no_signal"}} +{"event":"action","seq":378,"wall_ts_ms":1789176630879,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0378","position":{"x":-1400.0,"y":1400.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630879,"virtual_time_s":7384.421225,"measure_result":"no_signal"}} +{"event":"action","seq":379,"wall_ts_ms":1789176630880,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0379","position":{"x":-1200.0,"y":1800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630880,"virtual_time_s":7478.863944,"measure_result":"no_signal"}} +{"event":"action","seq":380,"wall_ts_ms":1789176630880,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0380","position":{"x":-1200.0,"y":1800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630880,"virtual_time_s":7484.863944,"measure_result":"no_signal"}} +{"event":"action","seq":381,"wall_ts_ms":1789176630880,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0381","position":{"x":-1200.0,"y":1800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630880,"virtual_time_s":7490.863944,"measure_result":"no_signal"}} +{"event":"action","seq":382,"wall_ts_ms":1789176630881,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0382","position":{"x":-1200.0,"y":1800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630881,"virtual_time_s":7496.863944,"measure_result":"no_signal"}} +{"event":"action","seq":383,"wall_ts_ms":1789176630881,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0383","position":{"x":-1200.0,"y":1800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630881,"virtual_time_s":7502.863944,"measure_result":"no_signal"}} +{"event":"action","seq":384,"wall_ts_ms":1789176630882,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0384","position":{"x":-1200.0,"y":1800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630882,"virtual_time_s":7508.863944,"measure_result":"no_signal"}} +{"event":"action","seq":385,"wall_ts_ms":1789176630882,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0385","position":{"x":-1200.0,"y":1800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630882,"virtual_time_s":7514.863944,"measure_result":"no_signal"}} +{"event":"action","seq":386,"wall_ts_ms":1789176630883,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0386","position":{"x":-1200.0,"y":1800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630883,"virtual_time_s":7520.863944,"measure_result":"no_signal"}} +{"event":"action","seq":387,"wall_ts_ms":1789176630883,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0387","position":{"x":1200.0,"y":1600.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630883,"virtual_time_s":8007.527727,"measure_result":"no_signal"}} +{"event":"action","seq":388,"wall_ts_ms":1789176630884,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0388","position":{"x":1200.0,"y":1600.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630884,"virtual_time_s":8013.527727,"measure_result":"no_signal"}} +{"event":"action","seq":389,"wall_ts_ms":1789176630884,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0389","position":{"x":1200.0,"y":1600.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630884,"virtual_time_s":8019.527727,"measure_result":"no_signal"}} +{"event":"action","seq":390,"wall_ts_ms":1789176630885,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0390","position":{"x":1200.0,"y":1600.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630885,"virtual_time_s":8025.527727,"measure_result":"no_signal"}} +{"event":"action","seq":391,"wall_ts_ms":1789176630885,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0391","position":{"x":1200.0,"y":1600.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630885,"virtual_time_s":8031.527727,"measure_result":"no_signal"}} +{"event":"action","seq":392,"wall_ts_ms":1789176630886,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0392","position":{"x":1200.0,"y":1600.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630886,"virtual_time_s":8037.527727,"measure_result":"no_signal"}} +{"event":"action","seq":393,"wall_ts_ms":1789176630886,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0393","position":{"x":1200.0,"y":1600.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630886,"virtual_time_s":8043.527727,"measure_result":"no_signal"}} +{"event":"action","seq":394,"wall_ts_ms":1789176630887,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0394","position":{"x":1200.0,"y":1600.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630887,"virtual_time_s":8049.527727,"measure_result":"no_signal"}} +{"event":"action","seq":395,"wall_ts_ms":1789176630887,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0395","position":{"x":1800.0,"y":600.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630887,"virtual_time_s":8287.765803,"measure_result":"no_signal"}} +{"event":"action","seq":396,"wall_ts_ms":1789176630888,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0396","position":{"x":1800.0,"y":600.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630888,"virtual_time_s":8293.765803,"measure_result":"no_signal"}} +{"event":"action","seq":397,"wall_ts_ms":1789176630888,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0397","position":{"x":1800.0,"y":600.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630888,"virtual_time_s":8299.765803,"measure_result":"no_signal"}} +{"event":"action","seq":398,"wall_ts_ms":1789176630889,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0398","position":{"x":1800.0,"y":600.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630888,"virtual_time_s":8305.765803,"measure_result":"no_signal"}} +{"event":"action","seq":399,"wall_ts_ms":1789176630889,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0399","position":{"x":1800.0,"y":600.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630889,"virtual_time_s":8311.765803,"measure_result":"no_signal"}} +{"event":"action","seq":400,"wall_ts_ms":1789176630889,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0400","position":{"x":1800.0,"y":600.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630889,"virtual_time_s":8317.765803,"measure_result":"no_signal"}} +{"event":"action","seq":401,"wall_ts_ms":1789176630890,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0401","position":{"x":1800.0,"y":600.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630890,"virtual_time_s":8323.765803,"measure_result":"no_signal"}} +{"event":"action","seq":402,"wall_ts_ms":1789176630890,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0402","position":{"x":1800.0,"y":600.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630890,"virtual_time_s":8329.765803,"measure_result":"no_signal"}} +{"event":"action","seq":403,"wall_ts_ms":1789176630891,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0403","position":{"x":1800.0,"y":0.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630891,"virtual_time_s":8454.765803,"measure_result":"no_signal"}} +{"event":"action","seq":404,"wall_ts_ms":1789176630891,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0404","position":{"x":1800.0,"y":0.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630891,"virtual_time_s":8460.765803,"measure_result":"no_signal"}} +{"event":"action","seq":405,"wall_ts_ms":1789176630892,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0405","position":{"x":1800.0,"y":0.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630892,"virtual_time_s":8466.765803,"measure_result":"no_signal"}} +{"event":"action","seq":406,"wall_ts_ms":1789176630892,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0406","position":{"x":1800.0,"y":0.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630892,"virtual_time_s":8472.765803,"measure_result":"no_signal"}} +{"event":"action","seq":407,"wall_ts_ms":1789176630893,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0407","position":{"x":1800.0,"y":0.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630893,"virtual_time_s":8478.765803,"measure_result":"no_signal"}} +{"event":"action","seq":408,"wall_ts_ms":1789176630893,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0408","position":{"x":1800.0,"y":0.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630893,"virtual_time_s":8484.765803,"measure_result":"no_signal"}} +{"event":"action","seq":409,"wall_ts_ms":1789176630894,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0409","position":{"x":1800.0,"y":0.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630894,"virtual_time_s":8490.765803,"measure_result":"no_signal"}} +{"event":"action","seq":410,"wall_ts_ms":1789176630894,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0410","position":{"x":1800.0,"y":0.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630894,"virtual_time_s":8496.765803,"measure_result":"no_signal"}} +{"event":"action","seq":411,"wall_ts_ms":1789176630895,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0411","position":{"x":1800.0,"y":-800.0},"channel":20},"response":{"accepted":true,"real_timestamp_ms":1789176630895,"virtual_time_s":8661.765803,"measure_result":"no_signal"}} +{"event":"action","seq":412,"wall_ts_ms":1789176630895,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0412","position":{"x":1800.0,"y":-800.0},"channel":3},"response":{"accepted":true,"real_timestamp_ms":1789176630895,"virtual_time_s":8667.765803,"measure_result":"no_signal"}} +{"event":"action","seq":413,"wall_ts_ms":1789176630896,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0413","position":{"x":1800.0,"y":-800.0},"channel":6},"response":{"accepted":true,"real_timestamp_ms":1789176630896,"virtual_time_s":8673.765803,"measure_result":"no_signal"}} +{"event":"action","seq":414,"wall_ts_ms":1789176630896,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0414","position":{"x":1800.0,"y":-800.0},"channel":8},"response":{"accepted":true,"real_timestamp_ms":1789176630896,"virtual_time_s":8679.765803,"measure_result":"no_signal"}} +{"event":"action","seq":415,"wall_ts_ms":1789176630896,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0415","position":{"x":1800.0,"y":-800.0},"channel":9},"response":{"accepted":true,"real_timestamp_ms":1789176630896,"virtual_time_s":8685.765803,"measure_result":"no_signal"}} +{"event":"action","seq":416,"wall_ts_ms":1789176630897,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0416","position":{"x":1800.0,"y":-800.0},"channel":14},"response":{"accepted":true,"real_timestamp_ms":1789176630897,"virtual_time_s":8691.765803,"measure_result":"no_signal"}} +{"event":"action","seq":417,"wall_ts_ms":1789176630897,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0417","position":{"x":1800.0,"y":-800.0},"channel":17},"response":{"accepted":true,"real_timestamp_ms":1789176630897,"virtual_time_s":8697.765803,"measure_result":"no_signal"}} +{"event":"action","seq":418,"wall_ts_ms":1789176630898,"method":"POST","path":"/measure","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0418","position":{"x":1800.0,"y":-800.0},"channel":19},"response":{"accepted":true,"real_timestamp_ms":1789176630898,"virtual_time_s":8703.765803,"measure_result":"no_signal"}} +{"event":"action","seq":419,"wall_ts_ms":1789176630898,"method":"POST","path":"/exit","status":200,"request":{"arena_id":"default","robot_id":"1","request_id":"2d8c15ad42ce-0419"},"response":{"accepted":true,"real_timestamp_ms":1789176630898,"virtual_time_s":8703.765803,"exit_reason":"user_exit"}} +{"event":"session_end","reason":"user_exit","virtual_time_s":8703.765803,"real_elapsed_s":8.459184,"request_count":419,"cleared_count":12} diff --git a/referee-data/sessions/RS35-JWSZ-7PJR-48ME/log.jsonl b/referee-data/sessions/RS35-JWSZ-7PJR-48ME/log.jsonl new file mode 100644 index 0000000..4679340 --- /dev/null +++ b/referee-data/sessions/RS35-JWSZ-7PJR-48ME/log.jsonl @@ -0,0 +1,400 @@ +{"event": "session_start", "case_code": "RS35-JWSZ-7PJR-48ME", "module": "q4_formal", "robot_id": "1", "seed": 524636976, "countdown_s": 5.0, "window_s": 1500.0, "max_real_duration_s": 1200.0, "truth": [{"channel": 19, "x": -206.10766492851073, "y": 1160.8055169225704, "r_eff_m": 1028.289877243241, "directional": true, "heading_deg": 288.58862711279323}, {"channel": 14, "x": 755.2806278559268, "y": 250.29082865203878, "r_eff_m": 1020.46483315481, "directional": true, "heading_deg": 291.8630536595404}, {"channel": 18, "x": 966.1057750947382, "y": -528.7766243925598, "r_eff_m": 1431.3029992563347, "directional": true, "heading_deg": 152.43896706878402}, {"channel": 9, "x": 263.1408255158642, "y": 857.6002010138432, "r_eff_m": 1124.292095106724, "directional": false, "heading_deg": 0.0}, {"channel": 13, "x": -87.51220801888897, "y": -1032.2242344411166, "r_eff_m": 1128.989839175949, "directional": false, "heading_deg": 0.0}, {"channel": 15, "x": 319.83243385729406, "y": 113.48421543474046, "r_eff_m": 1024.2663476707392, "directional": false, "heading_deg": 0.0}, {"channel": 7, "x": -1171.4978647108244, "y": -1073.4538615834038, "r_eff_m": 1247.2912686345992, "directional": false, "heading_deg": 0.0}, {"channel": 6, "x": 659.9240002207289, "y": 156.96230063594635, "r_eff_m": 1090.6727395531848, "directional": false, "heading_deg": 0.0}, {"channel": 20, "x": -726.0390048597063, "y": 836.3218839802242, "r_eff_m": 1274.2222659503636, "directional": false, "heading_deg": 0.0}, {"channel": 12, "x": -1706.9890741103702, "y": 282.3965606193818, "r_eff_m": 1071.3644107996988, "directional": false, "heading_deg": 0.0}, {"channel": 2, "x": 1188.125441370153, "y": -193.71523353215824, "r_eff_m": 1092.5104751409474, "directional": false, "heading_deg": 0.0}]} +{"event": "action", "seq": 1, "wall_ts_ms": 1789259875589, "method": "POST", "path": "/enter", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0001"}, "response": {"accepted": true, "real_timestamp_ms": 1789259875589, "virtual_time_s": 0.0, "max_virtual_duration_s": 360000.0, "max_real_duration_s": 1200, "remaining_real_duration_s": 1200}} +{"event": "action", "seq": 2, "wall_ts_ms": 1789259875591, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0002", "position": {"x": 0.0, "y": 0.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259875591, "virtual_time_s": 5.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 3, "wall_ts_ms": 1789259875592, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0003", "position": {"x": 0.0, "y": 0.0}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259875592, "virtual_time_s": 11.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 4, "wall_ts_ms": 1789259875592, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0004", "position": {"x": 0.0, "y": 0.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259875592, "virtual_time_s": 17.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 5, "wall_ts_ms": 1789259875593, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0005", "position": {"x": 0.0, "y": 0.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259875593, "virtual_time_s": 23.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 6, "wall_ts_ms": 1789259875594, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0006", "position": {"x": 0.0, "y": 0.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259875594, "virtual_time_s": 29.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 7, "wall_ts_ms": 1789259875594, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0007", "position": {"x": 0.0, "y": 0.0}, "channel": 6}, "response": {"accepted": true, "real_timestamp_ms": 1789259875594, "virtual_time_s": 35.0, "measure_result": "direction", "svd_deg": 13.68}} +{"event": "action", "seq": 8, "wall_ts_ms": 1789259875637, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0008", "position": {"x": 0.0, "y": 0.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259875637, "virtual_time_s": 41.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 9, "wall_ts_ms": 1789259875638, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0009", "position": {"x": 0.0, "y": 0.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259875638, "virtual_time_s": 47.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 10, "wall_ts_ms": 1789259875639, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0010", "position": {"x": 0.0, "y": 0.0}, "channel": 9}, "response": {"accepted": true, "real_timestamp_ms": 1789259875639, "virtual_time_s": 53.0, "measure_result": "direction", "svd_deg": 72.49}} +{"event": "action", "seq": 11, "wall_ts_ms": 1789259875680, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0011", "position": {"x": 0.0, "y": 0.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259875680, "virtual_time_s": 59.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 12, "wall_ts_ms": 1789259875681, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0012", "position": {"x": 0.0, "y": 0.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259875681, "virtual_time_s": 65.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 13, "wall_ts_ms": 1789259875682, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0013", "position": {"x": 0.0, "y": 0.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259875682, "virtual_time_s": 71.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 14, "wall_ts_ms": 1789259875683, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0014", "position": {"x": 0.0, "y": 0.0}, "channel": 13}, "response": {"accepted": true, "real_timestamp_ms": 1789259875683, "virtual_time_s": 77.0, "measure_result": "direction", "svd_deg": 264.18}} +{"event": "action", "seq": 15, "wall_ts_ms": 1789259875725, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0015", "position": {"x": 0.0, "y": 0.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259875725, "virtual_time_s": 83.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 16, "wall_ts_ms": 1789259875727, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0016", "position": {"x": 0.0, "y": 0.0}, "channel": 15}, "response": {"accepted": true, "real_timestamp_ms": 1789259875727, "virtual_time_s": 89.0, "measure_result": "direction", "svd_deg": 20.38}} +{"event": "action", "seq": 17, "wall_ts_ms": 1789259875768, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0017", "position": {"x": 0.0, "y": 0.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259875768, "virtual_time_s": 95.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 18, "wall_ts_ms": 1789259875769, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0018", "position": {"x": 0.0, "y": 0.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259875769, "virtual_time_s": 101.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 19, "wall_ts_ms": 1789259875771, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0019", "position": {"x": 0.0, "y": 0.0}, "channel": 18}, "response": {"accepted": true, "real_timestamp_ms": 1789259875771, "virtual_time_s": 107.0, "measure_result": "direction", "svd_deg": 330.33}} +{"event": "action", "seq": 20, "wall_ts_ms": 1789259875810, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0020", "position": {"x": 0.0, "y": 0.0}, "channel": 19}, "response": {"accepted": true, "real_timestamp_ms": 1789259875810, "virtual_time_s": 113.0, "measure_result": "no_signal"}} +{"event": "action", "seq": 21, "wall_ts_ms": 1789259875812, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0021", "position": {"x": 0.0, "y": 0.0}, "channel": 20}, "response": {"accepted": true, "real_timestamp_ms": 1789259875812, "virtual_time_s": 119.0, "measure_result": "direction", "svd_deg": 131.81}} +{"event": "action", "seq": 22, "wall_ts_ms": 1789259875984, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0022", "position": {"x": 225.43856042468397, "y": 340.38566772520807}, "channel": 9}, "response": {"accepted": true, "real_timestamp_ms": 1789259875984, "virtual_time_s": 206.654136, "measure_result": "direction", "svd_deg": 86.5}} +{"event": "action", "seq": 23, "wall_ts_ms": 1789259876008, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0023", "position": {"x": 256.3360768946249, "y": 769.9672321017814}, "channel": 9}, "response": {"accepted": true, "real_timestamp_ms": 1789259876008, "virtual_time_s": 297.792392, "measure_result": "direction", "svd_deg": 84.75}} +{"event": "action", "seq": 24, "wall_ts_ms": 1789259876026, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0024", "position": {"x": 263.4498448951434, "y": 805.5778050493692}, "channel": 9}, "response": {"accepted": true, "real_timestamp_ms": 1789259876026, "virtual_time_s": 310.055225, "measure_result": "direction", "svd_deg": 90.93}} +{"event": "action", "seq": 25, "wall_ts_ms": 1789259876038, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0025", "position": {"x": 263.11173796496564, "y": 837.4287489297928}, "channel": 9}, "response": {"accepted": true, "real_timestamp_ms": 1789259876038, "virtual_time_s": 321.425773, "measure_result": "direction", "svd_deg": 89.93}} +{"event": "action", "seq": 26, "wall_ts_ms": 1789259876039, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0026", "position": {"x": 263.32091951264, "y": 852.1588564417108}, "channel": 9}, "response": {"accepted": true, "real_timestamp_ms": 1789259876039, "virtual_time_s": 329.372092, "clear_result": "success"}} +{"event": "action", "seq": 27, "wall_ts_ms": 1789259876163, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0027", "position": {"x": 437.7751818578166, "y": 527.0393890709622}, "channel": 15}, "response": {"accepted": true, "real_timestamp_ms": 1789259876163, "virtual_time_s": 409.165576, "measure_result": "direction", "svd_deg": 254.28}} +{"event": "action", "seq": 28, "wall_ts_ms": 1789259876165, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0028", "position": {"x": 323.0483367277808, "y": 120.26649231260043}, "channel": 15}, "response": {"accepted": true, "real_timestamp_ms": 1789259876165, "virtual_time_s": 498.694018, "clear_result": "success"}} +{"event": "action", "seq": 29, "wall_ts_ms": 1789259876300, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0029", "position": {"x": 353.86585169731313, "y": 177.07883944077267}, "channel": 6}, "response": {"accepted": true, "real_timestamp_ms": 1789259876300, "virtual_time_s": 517.620521, "measure_result": "direction", "svd_deg": 356.03}} +{"event": "action", "seq": 30, "wall_ts_ms": 1789259876318, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0030", "position": {"x": 623.137835536188, "y": 157.43868730682544}, "channel": 6}, "response": {"accepted": true, "real_timestamp_ms": 1789259876318, "virtual_time_s": 576.617979, "measure_result": "direction", "svd_deg": 359.65}} +{"event": "action", "seq": 31, "wall_ts_ms": 1789259876331, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0031", "position": {"x": 643.390268452582, "y": 157.90178558507785}, "channel": 6}, "response": {"accepted": true, "real_timestamp_ms": 1789259876331, "virtual_time_s": 585.669524, "measure_result": "direction", "svd_deg": 356.99}} +{"event": "action", "seq": 32, "wall_ts_ms": 1789259876344, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0032", "position": {"x": 658.2106599525747, "y": 156.91307503744775}, "channel": 6}, "response": {"accepted": true, "real_timestamp_ms": 1789259876344, "virtual_time_s": 593.640191, "measure_result": "near"}} +{"event": "action", "seq": 33, "wall_ts_ms": 1789259876345, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0033", "position": {"x": 658.2108982998539, "y": 156.91671151420437}, "channel": 6}, "response": {"accepted": true, "real_timestamp_ms": 1789259876345, "virtual_time_s": 598.64092, "clear_result": "success"}} +{"event": "action", "seq": 34, "wall_ts_ms": 1789259876460, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0034", "position": {"x": 651.5410454641471, "y": 3.2839028335716307}, "channel": 18}, "response": {"accepted": true, "real_timestamp_ms": 1789259876460, "virtual_time_s": 635.396425, "measure_result": "direction", "svd_deg": 299.9}} +{"event": "action", "seq": 35, "wall_ts_ms": 1789259876476, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0035", "position": {"x": 953.538148948095, "y": -535.3409359473475}, "channel": 18}, "response": {"accepted": true, "real_timestamp_ms": 1789259876476, "virtual_time_s": 763.898484, "measure_result": "direction", "svd_deg": 27.9}} +{"event": "action", "seq": 36, "wall_ts_ms": 1789259876478, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0036", "position": {"x": 960.2042197940661, "y": -531.9597766048535}, "channel": 18}, "response": {"accepted": true, "real_timestamp_ms": 1789259876478, "virtual_time_s": 770.393392, "clear_result": "success"}} +{"event": "action", "seq": 37, "wall_ts_ms": 1789259876588, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0037", "position": {"x": 299.6683237330951, "y": -746.3782182934419}, "channel": 13}, "response": {"accepted": true, "real_timestamp_ms": 1789259876588, "virtual_time_s": 915.286579, "measure_result": "direction", "svd_deg": 216.72}} +{"event": "action", "seq": 38, "wall_ts_ms": 1789259876601, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0038", "position": {"x": -95.43111025367911, "y": -1038.7202758296098}, "channel": 13}, "response": {"accepted": true, "real_timestamp_ms": 1789259876601, "virtual_time_s": 1018.585601, "measure_result": "direction", "svd_deg": 39.81}} +{"event": "action", "seq": 39, "wall_ts_ms": 1789259876602, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0039", "position": {"x": -91.15315731966783, "y": -1035.0256910472945}, "channel": 13}, "response": {"accepted": true, "real_timestamp_ms": 1789259876602, "virtual_time_s": 1024.716102, "clear_result": "success"}} +{"event": "action", "seq": 40, "wall_ts_ms": 1789259876719, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0040", "position": {"x": -499.8376573399984, "y": 184.27341841609336}, "channel": 20}, "response": {"accepted": true, "real_timestamp_ms": 1789259876719, "virtual_time_s": 1287.909674, "measure_result": "direction", "svd_deg": 109.21}} +{"event": "action", "seq": 41, "wall_ts_ms": 1789259876738, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0041", "position": {"x": -717.1086066170639, "y": 764.897022025023}, "channel": 20}, "response": {"accepted": true, "real_timestamp_ms": 1789259876738, "virtual_time_s": 1416.898453, "measure_result": "direction", "svd_deg": 98.13}} +{"event": "action", "seq": 42, "wall_ts_ms": 1789259876750, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0042", "position": {"x": -724.495174230936, "y": 795.5591793872521}, "channel": 20}, "response": {"accepted": true, "real_timestamp_ms": 1789259876750, "virtual_time_s": 1428.206319, "measure_result": "direction", "svd_deg": 92.56}} +{"event": "action", "seq": 43, "wall_ts_ms": 1789259876751, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0043", "position": {"x": -726.2093626801134, "y": 828.2582370567629}, "channel": 20}, "response": {"accepted": true, "real_timestamp_ms": 1789259876751, "virtual_time_s": 1439.755111, "clear_result": "success"}} +{"event": "action", "seq": 44, "wall_ts_ms": 1789259876752, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0044", "position": {"x": -500.0, "y": 700.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259876752, "virtual_time_s": 1497.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 45, "wall_ts_ms": 1789259876753, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0045", "position": {"x": -500.0, "y": 700.0}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259876753, "virtual_time_s": 1503.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 46, "wall_ts_ms": 1789259876753, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0046", "position": {"x": -500.0, "y": 700.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259876753, "virtual_time_s": 1509.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 47, "wall_ts_ms": 1789259876754, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0047", "position": {"x": -500.0, "y": 700.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259876754, "virtual_time_s": 1515.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 48, "wall_ts_ms": 1789259876754, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0048", "position": {"x": -500.0, "y": 700.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259876754, "virtual_time_s": 1521.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 49, "wall_ts_ms": 1789259876755, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0049", "position": {"x": -500.0, "y": 700.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259876755, "virtual_time_s": 1527.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 50, "wall_ts_ms": 1789259876756, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0050", "position": {"x": -500.0, "y": 700.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259876756, "virtual_time_s": 1533.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 51, "wall_ts_ms": 1789259876756, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0051", "position": {"x": -500.0, "y": 700.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259876756, "virtual_time_s": 1539.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 52, "wall_ts_ms": 1789259876757, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0052", "position": {"x": -500.0, "y": 700.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259876757, "virtual_time_s": 1545.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 53, "wall_ts_ms": 1789259876757, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0053", "position": {"x": -500.0, "y": 700.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259876757, "virtual_time_s": 1551.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 54, "wall_ts_ms": 1789259876758, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0054", "position": {"x": -500.0, "y": 700.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259876758, "virtual_time_s": 1557.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 55, "wall_ts_ms": 1789259876758, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0055", "position": {"x": -500.0, "y": 700.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259876758, "virtual_time_s": 1563.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 56, "wall_ts_ms": 1789259876759, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0056", "position": {"x": -500.0, "y": 700.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259876759, "virtual_time_s": 1569.76313, "measure_result": "no_signal"}} +{"event": "action", "seq": 57, "wall_ts_ms": 1789259876759, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0057", "position": {"x": -500.0, "y": 700.0}, "channel": 19}, "response": {"accepted": true, "real_timestamp_ms": 1789259876759, "virtual_time_s": 1575.76313, "measure_result": "direction", "svd_deg": 57.9}} +{"event": "action", "seq": 58, "wall_ts_ms": 1789259876881, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0058", "position": {"x": -374.9114229492303, "y": 1014.3861697898594}, "channel": 19}, "response": {"accepted": true, "real_timestamp_ms": 1789259876881, "virtual_time_s": 1648.434635, "measure_result": "direction", "svd_deg": 41.84}} +{"event": "action", "seq": 59, "wall_ts_ms": 1789259876896, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0059", "position": {"x": -223.7596365207117, "y": 1149.0595775889099}, "channel": 19}, "response": {"accepted": true, "real_timestamp_ms": 1789259876896, "virtual_time_s": 1693.923542, "measure_result": "direction", "svd_deg": 33.83}} +{"event": "action", "seq": 60, "wall_ts_ms": 1789259876897, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0060", "position": {"x": -211.75424041865284, "y": 1157.4144260788594}, "channel": 19}, "response": {"accepted": true, "real_timestamp_ms": 1789259876897, "virtual_time_s": 1701.848832, "clear_result": "success"}} +{"event": "action", "seq": 61, "wall_ts_ms": 1789259876898, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0061", "position": {"x": -200.0, "y": 900.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259876898, "virtual_time_s": 1759.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 62, "wall_ts_ms": 1789259876898, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0062", "position": {"x": -200.0, "y": 900.0}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259876898, "virtual_time_s": 1765.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 63, "wall_ts_ms": 1789259876899, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0063", "position": {"x": -200.0, "y": 900.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259876899, "virtual_time_s": 1771.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 64, "wall_ts_ms": 1789259876900, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0064", "position": {"x": -200.0, "y": 900.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259876900, "virtual_time_s": 1777.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 65, "wall_ts_ms": 1789259876900, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0065", "position": {"x": -200.0, "y": 900.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259876900, "virtual_time_s": 1783.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 66, "wall_ts_ms": 1789259876901, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0066", "position": {"x": -200.0, "y": 900.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259876901, "virtual_time_s": 1789.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 67, "wall_ts_ms": 1789259876901, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0067", "position": {"x": -200.0, "y": 900.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259876901, "virtual_time_s": 1795.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 68, "wall_ts_ms": 1789259876902, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0068", "position": {"x": -200.0, "y": 900.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259876902, "virtual_time_s": 1801.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 69, "wall_ts_ms": 1789259876903, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0069", "position": {"x": -200.0, "y": 900.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259876903, "virtual_time_s": 1807.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 70, "wall_ts_ms": 1789259876903, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0070", "position": {"x": -200.0, "y": 900.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259876903, "virtual_time_s": 1813.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 71, "wall_ts_ms": 1789259876904, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0071", "position": {"x": -200.0, "y": 900.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259876904, "virtual_time_s": 1819.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 72, "wall_ts_ms": 1789259876905, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0072", "position": {"x": -200.0, "y": 900.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259876905, "virtual_time_s": 1825.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 73, "wall_ts_ms": 1789259876905, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0073", "position": {"x": -200.0, "y": 900.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259876905, "virtual_time_s": 1831.385362, "measure_result": "no_signal"}} +{"event": "action", "seq": 74, "wall_ts_ms": 1789259876906, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0074", "position": {"x": -400.0, "y": 1800.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259876906, "virtual_time_s": 2020.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 75, "wall_ts_ms": 1789259876906, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0075", "position": {"x": -400.0, "y": 1800.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259876906, "virtual_time_s": 2026.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 76, "wall_ts_ms": 1789259876907, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0076", "position": {"x": -400.0, "y": 1800.0}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259876907, "virtual_time_s": 2032.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 77, "wall_ts_ms": 1789259876907, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0077", "position": {"x": -400.0, "y": 1800.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259876907, "virtual_time_s": 2038.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 78, "wall_ts_ms": 1789259876908, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0078", "position": {"x": -400.0, "y": 1800.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259876908, "virtual_time_s": 2044.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 79, "wall_ts_ms": 1789259876908, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0079", "position": {"x": -400.0, "y": 1800.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259876908, "virtual_time_s": 2050.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 80, "wall_ts_ms": 1789259876909, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0080", "position": {"x": -400.0, "y": 1800.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259876909, "virtual_time_s": 2056.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 81, "wall_ts_ms": 1789259876910, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0081", "position": {"x": -400.0, "y": 1800.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259876910, "virtual_time_s": 2062.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 82, "wall_ts_ms": 1789259876910, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0082", "position": {"x": -400.0, "y": 1800.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259876910, "virtual_time_s": 2068.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 83, "wall_ts_ms": 1789259876911, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0083", "position": {"x": -400.0, "y": 1800.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259876911, "virtual_time_s": 2074.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 84, "wall_ts_ms": 1789259876911, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0084", "position": {"x": -400.0, "y": 1800.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259876911, "virtual_time_s": 2080.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 85, "wall_ts_ms": 1789259876912, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0085", "position": {"x": -400.0, "y": 1800.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259876912, "virtual_time_s": 2086.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 86, "wall_ts_ms": 1789259876912, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0086", "position": {"x": -400.0, "y": 1800.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259876912, "virtual_time_s": 2092.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 87, "wall_ts_ms": 1789259876913, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0087", "position": {"x": 400.0, "y": 1800.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259876913, "virtual_time_s": 2257.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 88, "wall_ts_ms": 1789259876913, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0088", "position": {"x": 400.0, "y": 1800.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259876913, "virtual_time_s": 2263.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 89, "wall_ts_ms": 1789259876914, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0089", "position": {"x": 400.0, "y": 1800.0}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259876914, "virtual_time_s": 2269.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 90, "wall_ts_ms": 1789259876914, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0090", "position": {"x": 400.0, "y": 1800.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259876914, "virtual_time_s": 2275.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 91, "wall_ts_ms": 1789259876915, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0091", "position": {"x": 400.0, "y": 1800.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259876915, "virtual_time_s": 2281.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 92, "wall_ts_ms": 1789259876915, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0092", "position": {"x": 400.0, "y": 1800.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259876915, "virtual_time_s": 2287.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 93, "wall_ts_ms": 1789259876916, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0093", "position": {"x": 400.0, "y": 1800.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259876916, "virtual_time_s": 2293.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 94, "wall_ts_ms": 1789259876916, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0094", "position": {"x": 400.0, "y": 1800.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259876916, "virtual_time_s": 2299.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 95, "wall_ts_ms": 1789259876917, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0095", "position": {"x": 400.0, "y": 1800.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259876917, "virtual_time_s": 2305.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 96, "wall_ts_ms": 1789259876917, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0096", "position": {"x": 400.0, "y": 1800.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259876917, "virtual_time_s": 2311.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 97, "wall_ts_ms": 1789259876918, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0097", "position": {"x": 400.0, "y": 1800.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259876918, "virtual_time_s": 2317.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 98, "wall_ts_ms": 1789259876918, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0098", "position": {"x": 400.0, "y": 1800.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259876918, "virtual_time_s": 2323.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 99, "wall_ts_ms": 1789259876919, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0099", "position": {"x": 400.0, "y": 1800.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259876919, "virtual_time_s": 2329.776251, "measure_result": "no_signal"}} +{"event": "action", "seq": 100, "wall_ts_ms": 1789259876919, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0100", "position": {"x": 600.0, "y": 1900.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259876919, "virtual_time_s": 2379.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 101, "wall_ts_ms": 1789259876920, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0101", "position": {"x": 600.0, "y": 1900.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259876920, "virtual_time_s": 2385.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 102, "wall_ts_ms": 1789259876920, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0102", "position": {"x": 600.0, "y": 1900.0}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259876920, "virtual_time_s": 2391.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 103, "wall_ts_ms": 1789259876921, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0103", "position": {"x": 600.0, "y": 1900.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259876921, "virtual_time_s": 2397.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 104, "wall_ts_ms": 1789259876922, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0104", "position": {"x": 600.0, "y": 1900.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259876922, "virtual_time_s": 2403.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 105, "wall_ts_ms": 1789259876922, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0105", "position": {"x": 600.0, "y": 1900.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259876922, "virtual_time_s": 2409.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 106, "wall_ts_ms": 1789259876923, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0106", "position": {"x": 600.0, "y": 1900.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259876923, "virtual_time_s": 2415.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 107, "wall_ts_ms": 1789259876923, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0107", "position": {"x": 600.0, "y": 1900.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259876923, "virtual_time_s": 2421.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 108, "wall_ts_ms": 1789259876924, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0108", "position": {"x": 600.0, "y": 1900.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259876924, "virtual_time_s": 2427.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 109, "wall_ts_ms": 1789259876924, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0109", "position": {"x": 600.0, "y": 1900.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259876924, "virtual_time_s": 2433.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 110, "wall_ts_ms": 1789259876925, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0110", "position": {"x": 600.0, "y": 1900.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259876925, "virtual_time_s": 2439.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 111, "wall_ts_ms": 1789259876925, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0111", "position": {"x": 600.0, "y": 1900.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259876925, "virtual_time_s": 2445.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 112, "wall_ts_ms": 1789259876926, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0112", "position": {"x": 600.0, "y": 1900.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259876926, "virtual_time_s": 2451.497611, "measure_result": "no_signal"}} +{"event": "action", "seq": 113, "wall_ts_ms": 1789259876926, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0113", "position": {"x": 800.0, "y": 1200.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259876926, "virtual_time_s": 2602.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 114, "wall_ts_ms": 1789259876927, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0114", "position": {"x": 800.0, "y": 1200.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259876927, "virtual_time_s": 2608.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 115, "wall_ts_ms": 1789259876927, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0115", "position": {"x": 800.0, "y": 1200.0}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259876927, "virtual_time_s": 2614.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 116, "wall_ts_ms": 1789259876928, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0116", "position": {"x": 800.0, "y": 1200.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259876928, "virtual_time_s": 2620.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 117, "wall_ts_ms": 1789259876928, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0117", "position": {"x": 800.0, "y": 1200.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259876928, "virtual_time_s": 2626.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 118, "wall_ts_ms": 1789259876929, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0118", "position": {"x": 800.0, "y": 1200.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259876929, "virtual_time_s": 2632.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 119, "wall_ts_ms": 1789259876929, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0119", "position": {"x": 800.0, "y": 1200.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259876929, "virtual_time_s": 2638.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 120, "wall_ts_ms": 1789259876930, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0120", "position": {"x": 800.0, "y": 1200.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259876930, "virtual_time_s": 2644.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 121, "wall_ts_ms": 1789259876930, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0121", "position": {"x": 800.0, "y": 1200.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259876930, "virtual_time_s": 2650.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 122, "wall_ts_ms": 1789259876930, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0122", "position": {"x": 800.0, "y": 1200.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259876930, "virtual_time_s": 2656.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 123, "wall_ts_ms": 1789259876931, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0123", "position": {"x": 800.0, "y": 1200.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259876931, "virtual_time_s": 2662.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 124, "wall_ts_ms": 1789259876931, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0124", "position": {"x": 800.0, "y": 1200.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259876931, "virtual_time_s": 2668.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 125, "wall_ts_ms": 1789259876932, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0125", "position": {"x": 800.0, "y": 1200.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259876932, "virtual_time_s": 2674.099809, "measure_result": "no_signal"}} +{"event": "action", "seq": 126, "wall_ts_ms": 1789259876932, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0126", "position": {"x": 700.0, "y": 700.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259876932, "virtual_time_s": 2781.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 127, "wall_ts_ms": 1789259876933, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0127", "position": {"x": 700.0, "y": 700.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259876933, "virtual_time_s": 2787.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 128, "wall_ts_ms": 1789259876933, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0128", "position": {"x": 700.0, "y": 700.0}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259876933, "virtual_time_s": 2793.080199, "measure_result": "direction", "svd_deg": 298.5}} +{"event": "action", "seq": 129, "wall_ts_ms": 1789259876965, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0129", "position": {"x": 700.0, "y": 700.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259876965, "virtual_time_s": 2799.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 130, "wall_ts_ms": 1789259876966, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0130", "position": {"x": 700.0, "y": 700.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259876966, "virtual_time_s": 2805.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 131, "wall_ts_ms": 1789259876966, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0131", "position": {"x": 700.0, "y": 700.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259876966, "virtual_time_s": 2811.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 132, "wall_ts_ms": 1789259876967, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0132", "position": {"x": 700.0, "y": 700.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259876967, "virtual_time_s": 2817.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 133, "wall_ts_ms": 1789259876967, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0133", "position": {"x": 700.0, "y": 700.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259876967, "virtual_time_s": 2823.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 134, "wall_ts_ms": 1789259876968, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0134", "position": {"x": 700.0, "y": 700.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259876968, "virtual_time_s": 2829.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 135, "wall_ts_ms": 1789259876968, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0135", "position": {"x": 700.0, "y": 700.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259876968, "virtual_time_s": 2835.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 136, "wall_ts_ms": 1789259876969, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0136", "position": {"x": 700.0, "y": 700.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259876969, "virtual_time_s": 2841.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 137, "wall_ts_ms": 1789259876969, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0137", "position": {"x": 700.0, "y": 700.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259876969, "virtual_time_s": 2847.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 138, "wall_ts_ms": 1789259876970, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0138", "position": {"x": 700.0, "y": 700.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259876970, "virtual_time_s": 2853.080199, "measure_result": "no_signal"}} +{"event": "action", "seq": 139, "wall_ts_ms": 1789259877079, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0139", "position": {"x": 792.288100015822, "y": 305.73638901582797}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259877079, "virtual_time_s": 2940.064367, "measure_result": "direction", "svd_deg": 308.18}} +{"event": "action", "seq": 140, "wall_ts_ms": 1789259877111, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0140", "position": {"x": 1142.6331712207536, "y": -162.14678549943523}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259877111, "virtual_time_s": 3061.967119, "measure_result": "direction", "svd_deg": 324.83}} +{"event": "action", "seq": 141, "wall_ts_ms": 1789259877128, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0141", "position": {"x": 1170.934312513636, "y": -178.60954251319572}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259877128, "virtual_time_s": 3073.515331, "measure_result": "direction", "svd_deg": 317.76}} +{"event": "action", "seq": 142, "wall_ts_ms": 1789259877129, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0142", "position": {"x": 1190.7391325240283, "y": -196.3044102097093}, "channel": 2}, "response": {"accepted": true, "real_timestamp_ms": 1789259877129, "virtual_time_s": 3083.826976, "clear_result": "success"}} +{"event": "action", "seq": 143, "wall_ts_ms": 1789259877130, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0143", "position": {"x": 1200.0, "y": -700.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877130, "virtual_time_s": 3190.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 144, "wall_ts_ms": 1789259877131, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0144", "position": {"x": 1200.0, "y": -700.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877131, "virtual_time_s": 3196.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 145, "wall_ts_ms": 1789259877131, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0145", "position": {"x": 1200.0, "y": -700.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877131, "virtual_time_s": 3202.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 146, "wall_ts_ms": 1789259877132, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0146", "position": {"x": 1200.0, "y": -700.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877132, "virtual_time_s": 3208.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 147, "wall_ts_ms": 1789259877132, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0147", "position": {"x": 1200.0, "y": -700.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877132, "virtual_time_s": 3214.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 148, "wall_ts_ms": 1789259877133, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0148", "position": {"x": 1200.0, "y": -700.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877133, "virtual_time_s": 3220.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 149, "wall_ts_ms": 1789259877134, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0149", "position": {"x": 1200.0, "y": -700.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877134, "virtual_time_s": 3226.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 150, "wall_ts_ms": 1789259877134, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0150", "position": {"x": 1200.0, "y": -700.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877134, "virtual_time_s": 3232.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 151, "wall_ts_ms": 1789259877135, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0151", "position": {"x": 1200.0, "y": -700.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877135, "virtual_time_s": 3238.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 152, "wall_ts_ms": 1789259877135, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0152", "position": {"x": 1200.0, "y": -700.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877135, "virtual_time_s": 3244.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 153, "wall_ts_ms": 1789259877137, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0153", "position": {"x": 1200.0, "y": -700.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877137, "virtual_time_s": 3250.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 154, "wall_ts_ms": 1789259877139, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0154", "position": {"x": 1200.0, "y": -700.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877139, "virtual_time_s": 3256.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 155, "wall_ts_ms": 1789259877140, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0155", "position": {"x": 900.0, "y": -700.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877140, "virtual_time_s": 3321.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 156, "wall_ts_ms": 1789259877141, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0156", "position": {"x": 900.0, "y": -700.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877141, "virtual_time_s": 3327.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 157, "wall_ts_ms": 1789259877142, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0157", "position": {"x": 900.0, "y": -700.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877142, "virtual_time_s": 3333.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 158, "wall_ts_ms": 1789259877143, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0158", "position": {"x": 900.0, "y": -700.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877143, "virtual_time_s": 3339.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 159, "wall_ts_ms": 1789259877144, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0159", "position": {"x": 900.0, "y": -700.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877144, "virtual_time_s": 3345.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 160, "wall_ts_ms": 1789259877144, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0160", "position": {"x": 900.0, "y": -700.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877144, "virtual_time_s": 3351.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 161, "wall_ts_ms": 1789259877145, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0161", "position": {"x": 900.0, "y": -700.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877145, "virtual_time_s": 3357.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 162, "wall_ts_ms": 1789259877145, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0162", "position": {"x": 900.0, "y": -700.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877145, "virtual_time_s": 3363.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 163, "wall_ts_ms": 1789259877146, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0163", "position": {"x": 900.0, "y": -700.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877146, "virtual_time_s": 3369.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 164, "wall_ts_ms": 1789259877146, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0164", "position": {"x": 900.0, "y": -700.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877146, "virtual_time_s": 3375.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 165, "wall_ts_ms": 1789259877147, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0165", "position": {"x": 900.0, "y": -700.0}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877147, "virtual_time_s": 3381.583119, "measure_result": "direction", "svd_deg": 99.27}} +{"event": "action", "seq": 166, "wall_ts_ms": 1789259877178, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0166", "position": {"x": 900.0, "y": -700.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877178, "virtual_time_s": 3387.583119, "measure_result": "no_signal"}} +{"event": "action", "seq": 167, "wall_ts_ms": 1789259877288, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0167", "position": {"x": 778.4307387429942, "y": -334.8179578485807}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877288, "virtual_time_s": 3470.560261, "measure_result": "direction", "svd_deg": 91.85}} +{"event": "action", "seq": 168, "wall_ts_ms": 1789259877322, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0168", "position": {"x": 758.0667636276528, "y": 93.82229385995808}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877322, "virtual_time_s": 3561.385003, "measure_result": "direction", "svd_deg": 90.36}} +{"event": "action", "seq": 169, "wall_ts_ms": 1789259877340, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0169", "position": {"x": 755.4547600911494, "y": 148.6156973841196}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877340, "virtual_time_s": 3577.356128, "measure_result": "direction", "svd_deg": 89.12}} +{"event": "action", "seq": 170, "wall_ts_ms": 1789259877353, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0170", "position": {"x": 755.671435007335, "y": 203.05607506840684}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877353, "virtual_time_s": 3593.24429, "measure_result": "direction", "svd_deg": 91.09}} +{"event": "action", "seq": 171, "wall_ts_ms": 1789259877366, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0171", "position": {"x": 755.4008971315272, "y": 226.6191308898462}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877366, "virtual_time_s": 3602.957212, "measure_result": "direction", "svd_deg": 90.24}} +{"event": "action", "seq": 172, "wall_ts_ms": 1789259877379, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0172", "position": {"x": 755.2656281936233, "y": 244.29168159674504}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877379, "virtual_time_s": 3611.491826, "measure_result": "direction", "svd_deg": 89.1}} +{"event": "action", "seq": 173, "wall_ts_ms": 1789259877388, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0173", "position": {"x": 755.217291159277, "y": 257.47977831710637}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877388, "virtual_time_s": 3619.129463, "measure_result": "no_signal"}} +{"event": "action", "seq": 174, "wall_ts_ms": 1789259877398, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0174", "position": {"x": 745.891867218803, "y": 261.34249538812946}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877398, "virtual_time_s": 3626.148216, "measure_result": "no_signal"}} +{"event": "action", "seq": 175, "wall_ts_ms": 1789259877407, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0175", "position": {"x": 736.566443278329, "y": 252.01707144765544}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877407, "virtual_time_s": 3633.785844, "measure_result": "no_signal"}} +{"event": "action", "seq": 176, "wall_ts_ms": 1789259877416, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0176", "position": {"x": 755.217291159277, "y": 244.29163730560927}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877416, "virtual_time_s": 3642.82335, "measure_result": "direction", "svd_deg": 89.53}} +{"event": "action", "seq": 177, "wall_ts_ms": 1789259877425, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0177", "position": {"x": 755.2156853911046, "y": 246.0440889895104}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877425, "virtual_time_s": 3648.17384, "measure_result": "near"}} +{"event": "action", "seq": 178, "wall_ts_ms": 1789259877426, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0178", "position": {"x": 755.2753793743505, "y": 248.5441425508068}, "channel": 14}, "response": {"accepted": true, "real_timestamp_ms": 1789259877426, "virtual_time_s": 3653.673993, "clear_result": "success"}} +{"event": "action", "seq": 179, "wall_ts_ms": 1789259877427, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0179", "position": {"x": 800.0, "y": 200.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877427, "virtual_time_s": 3672.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 180, "wall_ts_ms": 1789259877427, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0180", "position": {"x": 800.0, "y": 200.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877427, "virtual_time_s": 3678.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 181, "wall_ts_ms": 1789259877428, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0181", "position": {"x": 800.0, "y": 200.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877428, "virtual_time_s": 3684.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 182, "wall_ts_ms": 1789259877428, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0182", "position": {"x": 800.0, "y": 200.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877428, "virtual_time_s": 3690.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 183, "wall_ts_ms": 1789259877429, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0183", "position": {"x": 800.0, "y": 200.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877429, "virtual_time_s": 3696.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 184, "wall_ts_ms": 1789259877429, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0184", "position": {"x": 800.0, "y": 200.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877429, "virtual_time_s": 3702.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 185, "wall_ts_ms": 1789259877430, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0185", "position": {"x": 800.0, "y": 200.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877430, "virtual_time_s": 3708.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 186, "wall_ts_ms": 1789259877430, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0186", "position": {"x": 800.0, "y": 200.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877430, "virtual_time_s": 3714.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 187, "wall_ts_ms": 1789259877431, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0187", "position": {"x": 800.0, "y": 200.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877431, "virtual_time_s": 3720.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 188, "wall_ts_ms": 1789259877431, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0188", "position": {"x": 800.0, "y": 200.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877431, "virtual_time_s": 3726.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 189, "wall_ts_ms": 1789259877432, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0189", "position": {"x": 800.0, "y": 200.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877432, "virtual_time_s": 3732.875244, "measure_result": "no_signal"}} +{"event": "action", "seq": 190, "wall_ts_ms": 1789259877433, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0190", "position": {"x": 1800.0, "y": 300.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877433, "virtual_time_s": 3938.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 191, "wall_ts_ms": 1789259877433, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0191", "position": {"x": 1800.0, "y": 300.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877433, "virtual_time_s": 3944.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 192, "wall_ts_ms": 1789259877434, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0192", "position": {"x": 1800.0, "y": 300.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877434, "virtual_time_s": 3950.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 193, "wall_ts_ms": 1789259877434, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0193", "position": {"x": 1800.0, "y": 300.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877434, "virtual_time_s": 3956.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 194, "wall_ts_ms": 1789259877435, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0194", "position": {"x": 1800.0, "y": 300.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877435, "virtual_time_s": 3962.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 195, "wall_ts_ms": 1789259877435, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0195", "position": {"x": 1800.0, "y": 300.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877435, "virtual_time_s": 3968.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 196, "wall_ts_ms": 1789259877436, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0196", "position": {"x": 1800.0, "y": 300.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877436, "virtual_time_s": 3974.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 197, "wall_ts_ms": 1789259877436, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0197", "position": {"x": 1800.0, "y": 300.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877436, "virtual_time_s": 3980.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 198, "wall_ts_ms": 1789259877437, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0198", "position": {"x": 1800.0, "y": 300.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877437, "virtual_time_s": 3986.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 199, "wall_ts_ms": 1789259877437, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0199", "position": {"x": 1800.0, "y": 300.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877437, "virtual_time_s": 3992.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 200, "wall_ts_ms": 1789259877438, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0200", "position": {"x": 1800.0, "y": 300.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877438, "virtual_time_s": 3998.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 201, "wall_ts_ms": 1789259877438, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0201", "position": {"x": 1800.0, "y": -400.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877438, "virtual_time_s": 4143.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 202, "wall_ts_ms": 1789259877439, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0202", "position": {"x": 1800.0, "y": -400.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877439, "virtual_time_s": 4149.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 203, "wall_ts_ms": 1789259877439, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0203", "position": {"x": 1800.0, "y": -400.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877439, "virtual_time_s": 4155.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 204, "wall_ts_ms": 1789259877440, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0204", "position": {"x": 1800.0, "y": -400.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877440, "virtual_time_s": 4161.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 205, "wall_ts_ms": 1789259877440, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0205", "position": {"x": 1800.0, "y": -400.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877440, "virtual_time_s": 4167.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 206, "wall_ts_ms": 1789259877441, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0206", "position": {"x": 1800.0, "y": -400.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877441, "virtual_time_s": 4173.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 207, "wall_ts_ms": 1789259877441, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0207", "position": {"x": 1800.0, "y": -400.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877441, "virtual_time_s": 4179.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 208, "wall_ts_ms": 1789259877442, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0208", "position": {"x": 1800.0, "y": -400.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877442, "virtual_time_s": 4185.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 209, "wall_ts_ms": 1789259877442, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0209", "position": {"x": 1800.0, "y": -400.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877442, "virtual_time_s": 4191.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 210, "wall_ts_ms": 1789259877443, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0210", "position": {"x": 1800.0, "y": -400.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877443, "virtual_time_s": 4197.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 211, "wall_ts_ms": 1789259877443, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0211", "position": {"x": 1800.0, "y": -400.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877443, "virtual_time_s": 4203.872756, "measure_result": "no_signal"}} +{"event": "action", "seq": 212, "wall_ts_ms": 1789259877444, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0212", "position": {"x": 1900.0, "y": -900.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877444, "virtual_time_s": 4310.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 213, "wall_ts_ms": 1789259877444, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0213", "position": {"x": 1900.0, "y": -900.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877444, "virtual_time_s": 4316.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 214, "wall_ts_ms": 1789259877445, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0214", "position": {"x": 1900.0, "y": -900.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877445, "virtual_time_s": 4322.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 215, "wall_ts_ms": 1789259877445, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0215", "position": {"x": 1900.0, "y": -900.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877445, "virtual_time_s": 4328.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 216, "wall_ts_ms": 1789259877446, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0216", "position": {"x": 1900.0, "y": -900.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877446, "virtual_time_s": 4334.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 217, "wall_ts_ms": 1789259877446, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0217", "position": {"x": 1900.0, "y": -900.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877446, "virtual_time_s": 4340.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 218, "wall_ts_ms": 1789259877447, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0218", "position": {"x": 1900.0, "y": -900.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877447, "virtual_time_s": 4346.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 219, "wall_ts_ms": 1789259877447, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0219", "position": {"x": 1900.0, "y": -900.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877447, "virtual_time_s": 4352.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 220, "wall_ts_ms": 1789259877448, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0220", "position": {"x": 1900.0, "y": -900.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877448, "virtual_time_s": 4358.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 221, "wall_ts_ms": 1789259877448, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0221", "position": {"x": 1900.0, "y": -900.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877448, "virtual_time_s": 4364.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 222, "wall_ts_ms": 1789259877449, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0222", "position": {"x": 1900.0, "y": -900.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877449, "virtual_time_s": 4370.853146, "measure_result": "no_signal"}} +{"event": "action", "seq": 223, "wall_ts_ms": 1789259877449, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0223", "position": {"x": 1400.0, "y": -1400.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877449, "virtual_time_s": 4517.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 224, "wall_ts_ms": 1789259877450, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0224", "position": {"x": 1400.0, "y": -1400.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877450, "virtual_time_s": 4523.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 225, "wall_ts_ms": 1789259877450, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0225", "position": {"x": 1400.0, "y": -1400.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877450, "virtual_time_s": 4529.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 226, "wall_ts_ms": 1789259877451, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0226", "position": {"x": 1400.0, "y": -1400.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877451, "virtual_time_s": 4535.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 227, "wall_ts_ms": 1789259877451, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0227", "position": {"x": 1400.0, "y": -1400.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877451, "virtual_time_s": 4541.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 228, "wall_ts_ms": 1789259877452, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0228", "position": {"x": 1400.0, "y": -1400.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877452, "virtual_time_s": 4547.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 229, "wall_ts_ms": 1789259877452, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0229", "position": {"x": 1400.0, "y": -1400.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877452, "virtual_time_s": 4553.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 230, "wall_ts_ms": 1789259877453, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0230", "position": {"x": 1400.0, "y": -1400.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877453, "virtual_time_s": 4559.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 231, "wall_ts_ms": 1789259877453, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0231", "position": {"x": 1400.0, "y": -1400.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877453, "virtual_time_s": 4565.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 232, "wall_ts_ms": 1789259877454, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0232", "position": {"x": 1400.0, "y": -1400.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877454, "virtual_time_s": 4571.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 233, "wall_ts_ms": 1789259877454, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0233", "position": {"x": 1400.0, "y": -1400.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877454, "virtual_time_s": 4577.274502, "measure_result": "no_signal"}} +{"event": "action", "seq": 234, "wall_ts_ms": 1789259877455, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0234", "position": {"x": 500.0, "y": -1800.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877455, "virtual_time_s": 4779.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 235, "wall_ts_ms": 1789259877455, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0235", "position": {"x": 500.0, "y": -1800.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877455, "virtual_time_s": 4785.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 236, "wall_ts_ms": 1789259877456, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0236", "position": {"x": 500.0, "y": -1800.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877456, "virtual_time_s": 4791.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 237, "wall_ts_ms": 1789259877456, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0237", "position": {"x": 500.0, "y": -1800.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877456, "virtual_time_s": 4797.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 238, "wall_ts_ms": 1789259877457, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0238", "position": {"x": 500.0, "y": -1800.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877457, "virtual_time_s": 4803.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 239, "wall_ts_ms": 1789259877457, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0239", "position": {"x": 500.0, "y": -1800.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877457, "virtual_time_s": 4809.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 240, "wall_ts_ms": 1789259877458, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0240", "position": {"x": 500.0, "y": -1800.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877458, "virtual_time_s": 4815.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 241, "wall_ts_ms": 1789259877458, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0241", "position": {"x": 500.0, "y": -1800.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877458, "virtual_time_s": 4821.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 242, "wall_ts_ms": 1789259877459, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0242", "position": {"x": 500.0, "y": -1800.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877459, "virtual_time_s": 4827.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 243, "wall_ts_ms": 1789259877459, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0243", "position": {"x": 500.0, "y": -1800.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877459, "virtual_time_s": 4833.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 244, "wall_ts_ms": 1789259877460, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0244", "position": {"x": 500.0, "y": -1800.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877460, "virtual_time_s": 4839.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 245, "wall_ts_ms": 1789259877460, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0245", "position": {"x": -400.0, "y": -1800.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877460, "virtual_time_s": 5024.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 246, "wall_ts_ms": 1789259877461, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0246", "position": {"x": -400.0, "y": -1800.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877461, "virtual_time_s": 5030.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 247, "wall_ts_ms": 1789259877461, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0247", "position": {"x": -400.0, "y": -1800.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877461, "virtual_time_s": 5036.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 248, "wall_ts_ms": 1789259877462, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0248", "position": {"x": -400.0, "y": -1800.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877462, "virtual_time_s": 5042.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 249, "wall_ts_ms": 1789259877462, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0249", "position": {"x": -400.0, "y": -1800.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877462, "virtual_time_s": 5048.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 250, "wall_ts_ms": 1789259877463, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0250", "position": {"x": -400.0, "y": -1800.0}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877463, "virtual_time_s": 5054.251658, "measure_result": "direction", "svd_deg": 136.78}} +{"event": "action", "seq": 251, "wall_ts_ms": 1789259877490, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0251", "position": {"x": -400.0, "y": -1800.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877490, "virtual_time_s": 5060.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 252, "wall_ts_ms": 1789259877491, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0252", "position": {"x": -400.0, "y": -1800.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877491, "virtual_time_s": 5066.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 253, "wall_ts_ms": 1789259877491, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0253", "position": {"x": -400.0, "y": -1800.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877491, "virtual_time_s": 5072.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 254, "wall_ts_ms": 1789259877492, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0254", "position": {"x": -400.0, "y": -1800.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877492, "virtual_time_s": 5078.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 255, "wall_ts_ms": 1789259877492, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0255", "position": {"x": -400.0, "y": -1800.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877492, "virtual_time_s": 5084.251658, "measure_result": "no_signal"}} +{"event": "action", "seq": 256, "wall_ts_ms": 1789259877610, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0256", "position": {"x": -728.69636116244, "y": -1507.1437105929424}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877610, "virtual_time_s": 5178.298487, "measure_result": "direction", "svd_deg": 135.02}} +{"event": "action", "seq": 257, "wall_ts_ms": 1789259877700, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0257", "position": {"x": -946.0181776680415, "y": -1285.6860673149256}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877700, "virtual_time_s": 5245.35403, "measure_result": "direction", "svd_deg": 135.83}} +{"event": "action", "seq": 258, "wall_ts_ms": 1789259877764, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0258", "position": {"x": -946.0181776680461, "y": -1285.6860673149213}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877764, "virtual_time_s": 5250.35403, "measure_result": "direction", "svd_deg": 135.83}} +{"event": "action", "seq": 259, "wall_ts_ms": 1789259877828, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0259", "position": {"x": -1078.6427734346532, "y": -1153.0614715483139}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877828, "virtual_time_s": 5292.86593, "measure_result": "direction", "svd_deg": 139.88}} +{"event": "action", "seq": 260, "wall_ts_ms": 1789259877844, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0260", "position": {"x": -1112.363097168188, "y": -1127.4035681443797}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877844, "virtual_time_s": 5306.340334, "measure_result": "direction", "svd_deg": 138.59}} +{"event": "action", "seq": 261, "wall_ts_ms": 1789259877855, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0261", "position": {"x": -1149.5993380668797, "y": -1094.9497743816758}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877855, "virtual_time_s": 5321.219173, "measure_result": "direction", "svd_deg": 135.49}} +{"event": "action", "seq": 262, "wall_ts_ms": 1789259877865, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0262", "position": {"x": -1162.8166599945419, "y": -1082.8300666310483}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877865, "virtual_time_s": 5329.805731, "measure_result": "direction", "svd_deg": 133.13}} +{"event": "action", "seq": 263, "wall_ts_ms": 1789259877866, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0263", "position": {"x": -1170.7510075979283, "y": -1074.5445757840012}, "channel": 7}, "response": {"accepted": true, "real_timestamp_ms": 1789259877866, "virtual_time_s": 5337.1001, "clear_result": "success"}} +{"event": "action", "seq": 264, "wall_ts_ms": 1789259877866, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0264", "position": {"x": -1500.0, "y": -1300.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877866, "virtual_time_s": 5422.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 265, "wall_ts_ms": 1789259877867, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0265", "position": {"x": -1500.0, "y": -1300.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877867, "virtual_time_s": 5428.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 266, "wall_ts_ms": 1789259877868, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0266", "position": {"x": -1500.0, "y": -1300.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877868, "virtual_time_s": 5434.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 267, "wall_ts_ms": 1789259877868, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0267", "position": {"x": -1500.0, "y": -1300.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877868, "virtual_time_s": 5440.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 268, "wall_ts_ms": 1789259877869, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0268", "position": {"x": -1500.0, "y": -1300.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877869, "virtual_time_s": 5446.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 269, "wall_ts_ms": 1789259877869, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0269", "position": {"x": -1500.0, "y": -1300.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877869, "virtual_time_s": 5452.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 270, "wall_ts_ms": 1789259877870, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0270", "position": {"x": -1500.0, "y": -1300.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877870, "virtual_time_s": 5458.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 271, "wall_ts_ms": 1789259877870, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0271", "position": {"x": -1500.0, "y": -1300.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877870, "virtual_time_s": 5464.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 272, "wall_ts_ms": 1789259877871, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0272", "position": {"x": -1500.0, "y": -1300.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877871, "virtual_time_s": 5470.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 273, "wall_ts_ms": 1789259877871, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0273", "position": {"x": -1500.0, "y": -1300.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877871, "virtual_time_s": 5476.908633, "measure_result": "no_signal"}} +{"event": "action", "seq": 274, "wall_ts_ms": 1789259877872, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0274", "position": {"x": -700.0, "y": -1200.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877872, "virtual_time_s": 5643.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 275, "wall_ts_ms": 1789259877872, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0275", "position": {"x": -700.0, "y": -1200.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877872, "virtual_time_s": 5649.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 276, "wall_ts_ms": 1789259877873, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0276", "position": {"x": -700.0, "y": -1200.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877873, "virtual_time_s": 5655.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 277, "wall_ts_ms": 1789259877873, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0277", "position": {"x": -700.0, "y": -1200.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877873, "virtual_time_s": 5661.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 278, "wall_ts_ms": 1789259877874, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0278", "position": {"x": -700.0, "y": -1200.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877874, "virtual_time_s": 5667.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 279, "wall_ts_ms": 1789259877874, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0279", "position": {"x": -700.0, "y": -1200.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877874, "virtual_time_s": 5673.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 280, "wall_ts_ms": 1789259877875, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0280", "position": {"x": -700.0, "y": -1200.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877875, "virtual_time_s": 5679.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 281, "wall_ts_ms": 1789259877875, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0281", "position": {"x": -700.0, "y": -1200.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877875, "virtual_time_s": 5685.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 282, "wall_ts_ms": 1789259877876, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0282", "position": {"x": -700.0, "y": -1200.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877876, "virtual_time_s": 5691.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 283, "wall_ts_ms": 1789259877877, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0283", "position": {"x": -700.0, "y": -1200.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877877, "virtual_time_s": 5697.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 284, "wall_ts_ms": 1789259877877, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0284", "position": {"x": -700.0, "y": -700.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877877, "virtual_time_s": 5802.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 285, "wall_ts_ms": 1789259877878, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0285", "position": {"x": -700.0, "y": -700.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877878, "virtual_time_s": 5808.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 286, "wall_ts_ms": 1789259877878, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0286", "position": {"x": -700.0, "y": -700.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877878, "virtual_time_s": 5814.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 287, "wall_ts_ms": 1789259877879, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0287", "position": {"x": -700.0, "y": -700.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877879, "virtual_time_s": 5820.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 288, "wall_ts_ms": 1789259877879, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0288", "position": {"x": -700.0, "y": -700.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877879, "virtual_time_s": 5826.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 289, "wall_ts_ms": 1789259877880, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0289", "position": {"x": -700.0, "y": -700.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877880, "virtual_time_s": 5832.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 290, "wall_ts_ms": 1789259877880, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0290", "position": {"x": -700.0, "y": -700.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877880, "virtual_time_s": 5838.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 291, "wall_ts_ms": 1789259877881, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0291", "position": {"x": -700.0, "y": -700.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877881, "virtual_time_s": 5844.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 292, "wall_ts_ms": 1789259877881, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0292", "position": {"x": -700.0, "y": -700.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877881, "virtual_time_s": 5850.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 293, "wall_ts_ms": 1789259877882, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0293", "position": {"x": -700.0, "y": -700.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877882, "virtual_time_s": 5856.153788, "measure_result": "no_signal"}} +{"event": "action", "seq": 294, "wall_ts_ms": 1789259877883, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0294", "position": {"x": -800.0, "y": -200.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259877883, "virtual_time_s": 5963.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 295, "wall_ts_ms": 1789259877883, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0295", "position": {"x": -800.0, "y": -200.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259877883, "virtual_time_s": 5969.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 296, "wall_ts_ms": 1789259877884, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0296", "position": {"x": -800.0, "y": -200.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259877884, "virtual_time_s": 5975.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 297, "wall_ts_ms": 1789259877884, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0297", "position": {"x": -800.0, "y": -200.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259877884, "virtual_time_s": 5981.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 298, "wall_ts_ms": 1789259877884, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0298", "position": {"x": -800.0, "y": -200.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259877884, "virtual_time_s": 5987.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 299, "wall_ts_ms": 1789259877885, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0299", "position": {"x": -800.0, "y": -200.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259877885, "virtual_time_s": 5993.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 300, "wall_ts_ms": 1789259877885, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0300", "position": {"x": -800.0, "y": -200.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259877885, "virtual_time_s": 5999.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 301, "wall_ts_ms": 1789259877886, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0301", "position": {"x": -800.0, "y": -200.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259877886, "virtual_time_s": 6005.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 302, "wall_ts_ms": 1789259877886, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0302", "position": {"x": -800.0, "y": -200.0}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877886, "virtual_time_s": 6011.134178, "measure_result": "direction", "svd_deg": 151.48}} +{"event": "action", "seq": 303, "wall_ts_ms": 1789259877918, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0303", "position": {"x": -800.0, "y": -200.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259877918, "virtual_time_s": 6017.134178, "measure_result": "no_signal"}} +{"event": "action", "seq": 304, "wall_ts_ms": 1789259877998, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0304", "position": {"x": -1086.8081500579065, "y": -122.68877368823792}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259877998, "virtual_time_s": 6082.543248, "measure_result": "direction", "svd_deg": 147.75}} +{"event": "action", "seq": 305, "wall_ts_ms": 1789259878017, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0305", "position": {"x": -1664.4041002962663, "y": 245.21970411555594}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259878017, "virtual_time_s": 6224.506561, "measure_result": "direction", "svd_deg": 138.86}} +{"event": "action", "seq": 306, "wall_ts_ms": 1789259878026, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0306", "position": {"x": -1689.6738384220064, "y": 265.3220950722618}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259878026, "virtual_time_s": 6235.964628, "measure_result": "direction", "svd_deg": 135.8}} +{"event": "action", "seq": 307, "wall_ts_ms": 1789259878027, "method": "POST", "path": "/clear", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0307", "position": {"x": -1706.2675114664466, "y": 281.15223894265887}, "channel": 12}, "response": {"accepted": true, "real_timestamp_ms": 1789259878027, "virtual_time_s": 6245.551319, "clear_result": "success"}} +{"event": "action", "seq": 308, "wall_ts_ms": 1789259878028, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0308", "position": {"x": -1800.0, "y": 400.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878028, "virtual_time_s": 6281.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 309, "wall_ts_ms": 1789259878028, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0309", "position": {"x": -1800.0, "y": 400.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878028, "virtual_time_s": 6287.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 310, "wall_ts_ms": 1789259878029, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0310", "position": {"x": -1800.0, "y": 400.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878029, "virtual_time_s": 6293.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 311, "wall_ts_ms": 1789259878029, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0311", "position": {"x": -1800.0, "y": 400.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878029, "virtual_time_s": 6299.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 312, "wall_ts_ms": 1789259878030, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0312", "position": {"x": -1800.0, "y": 400.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878030, "virtual_time_s": 6305.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 313, "wall_ts_ms": 1789259878030, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0313", "position": {"x": -1800.0, "y": 400.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878030, "virtual_time_s": 6311.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 314, "wall_ts_ms": 1789259878031, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0314", "position": {"x": -1800.0, "y": 400.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878031, "virtual_time_s": 6317.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 315, "wall_ts_ms": 1789259878031, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0315", "position": {"x": -1800.0, "y": 400.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878031, "virtual_time_s": 6323.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 316, "wall_ts_ms": 1789259878032, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0316", "position": {"x": -1800.0, "y": 400.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878032, "virtual_time_s": 6329.823795, "measure_result": "no_signal"}} +{"event": "action", "seq": 317, "wall_ts_ms": 1789259878032, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0317", "position": {"x": -1200.0, "y": 700.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878032, "virtual_time_s": 6468.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 318, "wall_ts_ms": 1789259878033, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0318", "position": {"x": -1200.0, "y": 700.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878033, "virtual_time_s": 6474.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 319, "wall_ts_ms": 1789259878033, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0319", "position": {"x": -1200.0, "y": 700.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878033, "virtual_time_s": 6480.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 320, "wall_ts_ms": 1789259878034, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0320", "position": {"x": -1200.0, "y": 700.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878034, "virtual_time_s": 6486.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 321, "wall_ts_ms": 1789259878034, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0321", "position": {"x": -1200.0, "y": 700.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878034, "virtual_time_s": 6492.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 322, "wall_ts_ms": 1789259878035, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0322", "position": {"x": -1200.0, "y": 700.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878035, "virtual_time_s": 6498.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 323, "wall_ts_ms": 1789259878035, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0323", "position": {"x": -1200.0, "y": 700.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878035, "virtual_time_s": 6504.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 324, "wall_ts_ms": 1789259878036, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0324", "position": {"x": -1200.0, "y": 700.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878036, "virtual_time_s": 6510.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 325, "wall_ts_ms": 1789259878036, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0325", "position": {"x": -1200.0, "y": 700.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878036, "virtual_time_s": 6516.987874, "measure_result": "no_signal"}} +{"event": "action", "seq": 326, "wall_ts_ms": 1789259878037, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0326", "position": {"x": -1300.0, "y": 1500.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878037, "virtual_time_s": 6683.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 327, "wall_ts_ms": 1789259878037, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0327", "position": {"x": -1300.0, "y": 1500.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878037, "virtual_time_s": 6689.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 328, "wall_ts_ms": 1789259878038, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0328", "position": {"x": -1300.0, "y": 1500.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878038, "virtual_time_s": 6695.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 329, "wall_ts_ms": 1789259878038, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0329", "position": {"x": -1300.0, "y": 1500.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878038, "virtual_time_s": 6701.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 330, "wall_ts_ms": 1789259878039, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0330", "position": {"x": -1300.0, "y": 1500.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878039, "virtual_time_s": 6707.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 331, "wall_ts_ms": 1789259878039, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0331", "position": {"x": -1300.0, "y": 1500.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878039, "virtual_time_s": 6713.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 332, "wall_ts_ms": 1789259878040, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0332", "position": {"x": -1300.0, "y": 1500.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878040, "virtual_time_s": 6719.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 333, "wall_ts_ms": 1789259878040, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0333", "position": {"x": -1300.0, "y": 1500.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878040, "virtual_time_s": 6725.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 334, "wall_ts_ms": 1789259878041, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0334", "position": {"x": -1300.0, "y": 1500.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878041, "virtual_time_s": 6731.233029, "measure_result": "no_signal"}} +{"event": "action", "seq": 335, "wall_ts_ms": 1789259878041, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0335", "position": {"x": -2500.0, "y": 500.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878041, "virtual_time_s": 7048.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 336, "wall_ts_ms": 1789259878042, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0336", "position": {"x": -2500.0, "y": 500.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878042, "virtual_time_s": 7054.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 337, "wall_ts_ms": 1789259878042, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0337", "position": {"x": -2500.0, "y": 500.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878042, "virtual_time_s": 7060.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 338, "wall_ts_ms": 1789259878043, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0338", "position": {"x": -2500.0, "y": 500.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878043, "virtual_time_s": 7066.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 339, "wall_ts_ms": 1789259878043, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0339", "position": {"x": -2500.0, "y": 500.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878043, "virtual_time_s": 7072.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 340, "wall_ts_ms": 1789259878044, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0340", "position": {"x": -2500.0, "y": 500.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878044, "virtual_time_s": 7078.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 341, "wall_ts_ms": 1789259878044, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0341", "position": {"x": -2500.0, "y": 500.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878044, "virtual_time_s": 7084.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 342, "wall_ts_ms": 1789259878045, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0342", "position": {"x": -2500.0, "y": 500.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878045, "virtual_time_s": 7090.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 343, "wall_ts_ms": 1789259878051, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0343", "position": {"x": -2500.0, "y": 500.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878051, "virtual_time_s": 7096.643016, "measure_result": "no_signal"}} +{"event": "action", "seq": 344, "wall_ts_ms": 1789259878052, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0344", "position": {"x": -1800.0, "y": -300.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878052, "virtual_time_s": 7314.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 345, "wall_ts_ms": 1789259878053, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0345", "position": {"x": -1800.0, "y": -300.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878053, "virtual_time_s": 7320.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 346, "wall_ts_ms": 1789259878054, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0346", "position": {"x": -1800.0, "y": -300.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878054, "virtual_time_s": 7326.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 347, "wall_ts_ms": 1789259878055, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0347", "position": {"x": -1800.0, "y": -300.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878055, "virtual_time_s": 7332.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 348, "wall_ts_ms": 1789259878055, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0348", "position": {"x": -1800.0, "y": -300.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878055, "virtual_time_s": 7338.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 349, "wall_ts_ms": 1789259878056, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0349", "position": {"x": -1800.0, "y": -300.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878056, "virtual_time_s": 7344.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 350, "wall_ts_ms": 1789259878057, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0350", "position": {"x": -1800.0, "y": -300.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878056, "virtual_time_s": 7350.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 351, "wall_ts_ms": 1789259878057, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0351", "position": {"x": -1800.0, "y": -300.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878057, "virtual_time_s": 7356.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 352, "wall_ts_ms": 1789259878058, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0352", "position": {"x": -1800.0, "y": -300.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878058, "virtual_time_s": 7362.245932, "measure_result": "no_signal"}} +{"event": "action", "seq": 353, "wall_ts_ms": 1789259878058, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0353", "position": {"x": -1700.0, "y": -500.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878058, "virtual_time_s": 7411.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 354, "wall_ts_ms": 1789259878059, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0354", "position": {"x": -1700.0, "y": -500.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878059, "virtual_time_s": 7417.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 355, "wall_ts_ms": 1789259878059, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0355", "position": {"x": -1700.0, "y": -500.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878059, "virtual_time_s": 7423.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 356, "wall_ts_ms": 1789259878060, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0356", "position": {"x": -1700.0, "y": -500.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878060, "virtual_time_s": 7429.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 357, "wall_ts_ms": 1789259878060, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0357", "position": {"x": -1700.0, "y": -500.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878060, "virtual_time_s": 7435.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 358, "wall_ts_ms": 1789259878061, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0358", "position": {"x": -1700.0, "y": -500.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878061, "virtual_time_s": 7441.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 359, "wall_ts_ms": 1789259878061, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0359", "position": {"x": -1700.0, "y": -500.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878061, "virtual_time_s": 7447.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 360, "wall_ts_ms": 1789259878062, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0360", "position": {"x": -1700.0, "y": -500.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878062, "virtual_time_s": 7453.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 361, "wall_ts_ms": 1789259878063, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0361", "position": {"x": -1700.0, "y": -500.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878063, "virtual_time_s": 7459.967292, "measure_result": "no_signal"}} +{"event": "action", "seq": 362, "wall_ts_ms": 1789259878063, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0362", "position": {"x": -900.0, "y": -2100.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878063, "virtual_time_s": 7822.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 363, "wall_ts_ms": 1789259878064, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0363", "position": {"x": -900.0, "y": -2100.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878064, "virtual_time_s": 7828.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 364, "wall_ts_ms": 1789259878065, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0364", "position": {"x": -900.0, "y": -2100.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878065, "virtual_time_s": 7834.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 365, "wall_ts_ms": 1789259878065, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0365", "position": {"x": -900.0, "y": -2100.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878065, "virtual_time_s": 7840.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 366, "wall_ts_ms": 1789259878067, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0366", "position": {"x": -900.0, "y": -2100.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878067, "virtual_time_s": 7846.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 367, "wall_ts_ms": 1789259878068, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0367", "position": {"x": -900.0, "y": -2100.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878068, "virtual_time_s": 7852.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 368, "wall_ts_ms": 1789259878068, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0368", "position": {"x": -900.0, "y": -2100.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878068, "virtual_time_s": 7858.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 369, "wall_ts_ms": 1789259878069, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0369", "position": {"x": -900.0, "y": -2100.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878069, "virtual_time_s": 7864.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 370, "wall_ts_ms": 1789259878070, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0370", "position": {"x": -900.0, "y": -2100.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878070, "virtual_time_s": 7870.738168, "measure_result": "no_signal"}} +{"event": "action", "seq": 371, "wall_ts_ms": 1789259878070, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0371", "position": {"x": 200.0, "y": -900.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878070, "virtual_time_s": 8201.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 372, "wall_ts_ms": 1789259878071, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0372", "position": {"x": 200.0, "y": -900.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878071, "virtual_time_s": 8207.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 373, "wall_ts_ms": 1789259878071, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0373", "position": {"x": 200.0, "y": -900.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878071, "virtual_time_s": 8213.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 374, "wall_ts_ms": 1789259878072, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0374", "position": {"x": 200.0, "y": -900.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878072, "virtual_time_s": 8219.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 375, "wall_ts_ms": 1789259878072, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0375", "position": {"x": 200.0, "y": -900.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878072, "virtual_time_s": 8225.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 376, "wall_ts_ms": 1789259878073, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0376", "position": {"x": 200.0, "y": -900.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878073, "virtual_time_s": 8231.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 377, "wall_ts_ms": 1789259878073, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0377", "position": {"x": 200.0, "y": -900.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878073, "virtual_time_s": 8237.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 378, "wall_ts_ms": 1789259878074, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0378", "position": {"x": 200.0, "y": -900.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878074, "virtual_time_s": 8243.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 379, "wall_ts_ms": 1789259878074, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0379", "position": {"x": 200.0, "y": -900.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878074, "virtual_time_s": 8249.31458, "measure_result": "no_signal"}} +{"event": "action", "seq": 380, "wall_ts_ms": 1789259878075, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0380", "position": {"x": 1300.0, "y": 1100.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878075, "virtual_time_s": 8710.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 381, "wall_ts_ms": 1789259878076, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0381", "position": {"x": 1300.0, "y": 1100.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878076, "virtual_time_s": 8716.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 382, "wall_ts_ms": 1789259878076, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0382", "position": {"x": 1300.0, "y": 1100.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878076, "virtual_time_s": 8722.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 383, "wall_ts_ms": 1789259878077, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0383", "position": {"x": 1300.0, "y": 1100.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878077, "virtual_time_s": 8728.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 384, "wall_ts_ms": 1789259878077, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0384", "position": {"x": 1300.0, "y": 1100.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878077, "virtual_time_s": 8734.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 385, "wall_ts_ms": 1789259878078, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0385", "position": {"x": 1300.0, "y": 1100.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878078, "virtual_time_s": 8740.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 386, "wall_ts_ms": 1789259878079, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0386", "position": {"x": 1300.0, "y": 1100.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878079, "virtual_time_s": 8746.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 387, "wall_ts_ms": 1789259878080, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0387", "position": {"x": 1300.0, "y": 1100.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878080, "virtual_time_s": 8752.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 388, "wall_ts_ms": 1789259878080, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0388", "position": {"x": 1300.0, "y": 1100.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878080, "virtual_time_s": 8758.823068, "measure_result": "no_signal"}} +{"event": "action", "seq": 389, "wall_ts_ms": 1789259878081, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0389", "position": {"x": 1500.0, "y": 1300.0}, "channel": 17}, "response": {"accepted": true, "real_timestamp_ms": 1789259878081, "virtual_time_s": 8820.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 390, "wall_ts_ms": 1789259878081, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0390", "position": {"x": 1500.0, "y": 1300.0}, "channel": 1}, "response": {"accepted": true, "real_timestamp_ms": 1789259878081, "virtual_time_s": 8826.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 391, "wall_ts_ms": 1789259878082, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0391", "position": {"x": 1500.0, "y": 1300.0}, "channel": 3}, "response": {"accepted": true, "real_timestamp_ms": 1789259878082, "virtual_time_s": 8832.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 392, "wall_ts_ms": 1789259878082, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0392", "position": {"x": 1500.0, "y": 1300.0}, "channel": 4}, "response": {"accepted": true, "real_timestamp_ms": 1789259878082, "virtual_time_s": 8838.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 393, "wall_ts_ms": 1789259878083, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0393", "position": {"x": 1500.0, "y": 1300.0}, "channel": 5}, "response": {"accepted": true, "real_timestamp_ms": 1789259878083, "virtual_time_s": 8844.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 394, "wall_ts_ms": 1789259878083, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0394", "position": {"x": 1500.0, "y": 1300.0}, "channel": 8}, "response": {"accepted": true, "real_timestamp_ms": 1789259878083, "virtual_time_s": 8850.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 395, "wall_ts_ms": 1789259878084, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0395", "position": {"x": 1500.0, "y": 1300.0}, "channel": 10}, "response": {"accepted": true, "real_timestamp_ms": 1789259878084, "virtual_time_s": 8856.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 396, "wall_ts_ms": 1789259878084, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0396", "position": {"x": 1500.0, "y": 1300.0}, "channel": 11}, "response": {"accepted": true, "real_timestamp_ms": 1789259878084, "virtual_time_s": 8862.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 397, "wall_ts_ms": 1789259878085, "method": "POST", "path": "/measure", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0397", "position": {"x": 1500.0, "y": 1300.0}, "channel": 16}, "response": {"accepted": true, "real_timestamp_ms": 1789259878085, "virtual_time_s": 8868.39161, "measure_result": "no_signal"}} +{"event": "action", "seq": 398, "wall_ts_ms": 1789259878085, "method": "POST", "path": "/exit", "status": 200, "request": {"arena_id": "default", "robot_id": "1", "request_id": "b4f53d0e2d49-0398"}, "response": {"accepted": true, "real_timestamp_ms": 1789259878085, "virtual_time_s": 8868.39161, "exit_reason": "user_exit"}} +{"event": "session_end", "reason": "user_exit", "virtual_time_s": 8868.39161, "real_elapsed_s": 13.428012, "request_count": 398, "cleared_count": 11} diff --git a/referee-data/sessions/RS35-JWSZ-7PJR-48ME/meta.json b/referee-data/sessions/RS35-JWSZ-7PJR-48ME/meta.json new file mode 100644 index 0000000..d089e00 --- /dev/null +++ b/referee-data/sessions/RS35-JWSZ-7PJR-48ME/meta.json @@ -0,0 +1,96 @@ +{ + "case_code": "RS35-JWSZ-7PJR-48ME", + "module": "q4_formal", + "robot_id": "1", + "seed": 524636976, + "truth": [ + { + "channel": 19, + "x": -206.10766492851073, + "y": 1160.8055169225704, + "r_eff_m": 1028.289877243241, + "directional": true, + "heading_deg": 288.58862711279323 + }, + { + "channel": 14, + "x": 755.2806278559268, + "y": 250.29082865203878, + "r_eff_m": 1020.46483315481, + "directional": true, + "heading_deg": 291.8630536595404 + }, + { + "channel": 18, + "x": 966.1057750947382, + "y": -528.7766243925598, + "r_eff_m": 1431.3029992563347, + "directional": true, + "heading_deg": 152.43896706878402 + }, + { + "channel": 9, + "x": 263.1408255158642, + "y": 857.6002010138432, + "r_eff_m": 1124.292095106724, + "directional": false, + "heading_deg": 0.0 + }, + { + "channel": 13, + "x": -87.51220801888897, + "y": -1032.2242344411166, + "r_eff_m": 1128.989839175949, + "directional": false, + "heading_deg": 0.0 + }, + { + "channel": 15, + "x": 319.83243385729406, + "y": 113.48421543474046, + "r_eff_m": 1024.2663476707392, + "directional": false, + "heading_deg": 0.0 + }, + { + "channel": 7, + "x": -1171.4978647108244, + "y": -1073.4538615834038, + "r_eff_m": 1247.2912686345992, + "directional": false, + "heading_deg": 0.0 + }, + { + "channel": 6, + "x": 659.9240002207289, + "y": 156.96230063594635, + "r_eff_m": 1090.6727395531848, + "directional": false, + "heading_deg": 0.0 + }, + { + "channel": 20, + "x": -726.0390048597063, + "y": 836.3218839802242, + "r_eff_m": 1274.2222659503636, + "directional": false, + "heading_deg": 0.0 + }, + { + "channel": 12, + "x": -1706.9890741103702, + "y": 282.3965606193818, + "r_eff_m": 1071.3644107996988, + "directional": false, + "heading_deg": 0.0 + }, + { + "channel": 2, + "x": 1188.125441370153, + "y": -193.71523353215824, + "r_eff_m": 1092.5104751409474, + "directional": false, + "heading_deg": 0.0 + } + ] +} \ No newline at end of file diff --git a/scripts/archive_replay_logs.py b/scripts/archive_replay_logs.py new file mode 100644 index 0000000..816e8bb --- /dev/null +++ b/scripts/archive_replay_logs.py @@ -0,0 +1,92 @@ +"""把评测机一局的日志归档到 ``examples/replay/``,供无 referee-data 时复现插图。 + +``referee-data/`` 与 ``output/`` 都在 .gitignore 里:本机清掉评测机数据后, +``docs/figures/*.png`` 就无法复现。本脚本把"作图用到的那几局"抽出来, +命名成 ``..jsonl`` 存进 ``examples/replay/``(入库、几万行以内), +``scripts/make_figures.py`` 在没有评测机数据时自动改读这里。 + + uv run python scripts/archive_replay_logs.py # 归档作图默认选中的两局 + uv run python scripts/archive_replay_logs.py BBM9-HZG2-77N5-NKKC # 指定案例 + uv run python scripts/archive_replay_logs.py --list # 只看有哪些局 + +归档是**内容等价**的:只做 JSON 重新格式化(逐行 compact 输出),不改字段, +并在文件头写入一条 ``session_start``(评测机日志本就自带),保持解析兼容。 +""" + +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SESSIONS_DIR = ROOT / 'referee-data' / 'sessions' +ARCHIVE_DIR = ROOT / 'examples' / 'replay' + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +from make_figures import discover_runs, pick_run # noqa: E402 + + +def archive(run: dict, out_dir: Path) -> Path: + """把一局日志写成归档 JSONL:逐行原样紧凑输出(字段不变,只重新格式化)。""" + out_dir.mkdir(parents=True, exist_ok=True) + target = out_dir / f"{run['case_code']}.{run['module']}.jsonl" + lines: list[str] = [] + for line in run["source"].read_text(encoding='utf-8').splitlines(): + line = line.strip() + if not line: + continue + try: + doc = json.loads(line) + except json.JSONDecodeError: + continue + lines.append(json.dumps(doc, ensure_ascii=False, separators=(',', ':'))) + target.write_text('\n'.join(lines) + '\n', encoding='utf-8') + return target + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + parser.add_argument('cases', nargs='*', help='案例编码;缺省=作图默认选中的那几局') + parser.add_argument('--list', action='store_true', help='列出可选案例后退出') + parser.add_argument('--out', default=str(ARCHIVE_DIR)) + args = parser.parse_args() + + runs = discover_runs() + if not runs: + print('没有找到可归档的日志:referee-data/sessions/*/log.jsonl 与 ' + 'examples/replay/*.jsonl 都为空。') + return 1 + if args.list: + for run in runs: + clears = sum(1 for a in run["actions"] if a["path"] == "/clear") + print(f"{run['case_code']} {run['module']:<12} 真值 {len(run['truth']):2d} " + f"动作 {len(run['actions']):4d} 清除 {clears:3d}") + return 0 + + picked = [] + if args.cases: + wanted = set(args.cases) + picked = [r for r in runs if r["case_code"] in wanted] + missing = wanted - {r["case_code"] for r in picked} + if missing: + print(f'未找到案例:{sorted(missing)}') + return 1 + else: + for module, truth in (('q3', 10), ('q4', 12)): + run = pick_run(runs, module=module, truth=truth) + if run and run not in picked: + picked.append(run) + + for run in picked: + path = archive(run, Path(args.out)) + print(f"[archive] {run['case_code']:<20} {run['module']:<12} " + f"真值 {len(run['truth']):2d} 动作 {len(run['actions']):4d} → " + f"{path.relative_to(ROOT)}") + return 0 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/scripts/make_figures.py b/scripts/make_figures.py new file mode 100644 index 0000000..dba1c9b --- /dev/null +++ b/scripts/make_figures.py @@ -0,0 +1,1182 @@ +"""docs/figures 的论文插图生成器(matplotlib 版)。 + + uv run python scripts/make_figures.py # 全部 11 张 + uv run python scripts/make_figures.py --list # 图名 + uv run python scripts/make_figures.py --only flow-overall-architecture + uv run python scripts/make_figures.py --scale 1.5 # 尺寸倍率 + +约定(与 docs/figures/README.md 对应): + +- **只输出 PNG**(不生成 SVG),分辨率按论文插图设置; +- **图内不放标题、图注与解释性文字**,只保留坐标轴、图例与数据标注; + 图的含义由文件名与 README 清单承担,解释写在论文正文; +- 字体取自 ``docs/paper/fonts/``(宋体 / 黑体 / Times New Roman),与 main.tex 一致; +- 数据来源与 sha256 写入 ``docs/figures/manifest.json``。 +""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import math +import os +import sys +from pathlib import Path +from typing import Any, Callable, Iterable, Sequence + +ROOT = Path(__file__).resolve().parents[1] +FONT_DIR = ROOT / "docs" / "paper" / "fonts" +OUT_DIR = ROOT / "docs" / "figures" +SESSIONS_DIR = ROOT / "referee-data" / "sessions" +ARCHIVE_DIR = ROOT / "examples" / "replay" +CACHE_DIR = ROOT / ".mpl-cache" + +# matplotlib 的缓存目录:仓库内可写,避免污染用户目录 +CACHE_DIR.mkdir(exist_ok=True) +os.environ.setdefault("MPLCONFIGDIR", str(CACHE_DIR)) +os.environ.setdefault("XDG_CACHE_HOME", str(CACHE_DIR)) + +import matplotlib # noqa: E402 +matplotlib.use("Agg") +import numpy as np # noqa: E402 +from matplotlib import font_manager as fm # noqa: E402 +from matplotlib import pyplot as plt # noqa: E402 +from matplotlib.lines import Line2D # noqa: E402 +from matplotlib.patches import Circle, FancyArrowPatch, FancyBboxPatch, Polygon # noqa: E402 + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +# 题面常量(与 src/mcm26b/config.py 一致) +OMEGA_R = 1800.0 +R_EFF = 1000.0 +SPEED_MPS = 5.0 +MEASURE_S = 5.0 +SWITCH_S = 1.0 +CLEAR_OK_S = 5.0 +CLEAR_NO_S = 3.0 +RING_RADIUS_M = 1159.7 +SEVEN_R = 1800.0 +Q4_DESIGN_R = 965.0 +Q4_HEADING_MARGIN_DEG = 5.0 + +# 论文配色:低饱和,单色打印可辨 +C = { + "ink": "#1c2430", + "muted": "#5c6673", + "grid": "#e4e9ee", + "primary": "#1f4e79", + "primary_fill": "#dce6f1", + "accent": "#b03a2e", + "accent_fill": "#f6dcd8", + "success": "#1e7a5f", + "success_fill": "#d8ece5", + "warn": "#b8860b", + "warn_fill": "#f6ecd2", + "violet": "#5b4b8a", +} + +FONTS = { + "song": "SongtiSC-Regular.ttf", + "song_bold": "SongtiSC-Bold.ttf", + "hei": "HeitiSC-Light.ttf", + "hei_bold": "HeitiSC-Medium.ttf", + "times": "Times New Roman.ttf", + "times_bold": "Times New Roman Bold.ttf", +} + + +# --------------------------------------------------------------------------- +# 样式 +# --------------------------------------------------------------------------- +def setup_style() -> dict[str, Any]: + """注册自带字体并设全局样式,返回 FontProperties 字典。""" + for name in FONTS.values(): + path = FONT_DIR / name + if path.is_file(): + fm.fontManager.addfont(str(path)) + props = {key: fm.FontProperties(fname=str(FONT_DIR / name)) + for key, name in FONTS.items() if (FONT_DIR / name).is_file()} + plt.rcParams.update({ + "figure.dpi": 120, + "savefig.dpi": 200, + "font.family": [props["song"].get_name(), "DejaVu Sans"], + "font.size": 8.5, + "axes.titlesize": 9, + "axes.labelsize": 8.5, + "xtick.labelsize": 8, + "ytick.labelsize": 8, + "legend.fontsize": 8, + "axes.edgecolor": C["muted"], + "axes.labelcolor": C["ink"], + "text.color": C["ink"], + "xtick.color": C["muted"], + "ytick.color": C["muted"], + "axes.grid": False, + "axes.unicode_minus": False, + "lines.linewidth": 1.2, + }) + return props + + +def new_axes(width_mm: float, height_mm: float, *, ncols: int = 1, + nrows: int = 1, scale: float = 1.0, **kw: Any) -> tuple[Any, Any]: + """按毫米尺寸建图(论文按 160 mm 宽排版时用 1.0 倍)。""" + fig, axes = plt.subplots(nrows, ncols, + figsize=(width_mm / 25.4 * scale, height_mm / 25.4 * scale), + layout="constrained", **kw) + return fig, axes + + +def axes_for_panels(panel_mm: float, aspects: Sequence[float], *, scale: float = 1.0, + width_ratios: Sequence[float] | None = None, + extra_mm: float = 30.0, **kw: Any) -> tuple[Any, Any]: + """按"每个面板高 panel_mm、宽 = 高 × 宽高比"手工排版。 + + 等比例坐标轴(``set_aspect('equal')``)在自动布局(constrained/tight)下会被 + 挤成一小块,因此这里直接按数据比例分配位置:每个子图的方框宽高比等于 + 数据宽高比,等比例坐标轴正好铺满方框。 + """ + del kw + ratios = list(width_ratios) if width_ratios else [1.0] * len(aspects) + widths = [panel_mm * aspect * ratio for aspect, ratio in zip(aspects, ratios)] + left_mm, right_mm, top_mm = 16.0, 6.0, 6.0 + gap_mm, bottom_mm = 16.0, 15.0 + total_w = left_mm + sum(widths) + gap_mm * (len(widths) - 1) + right_mm + total_h = top_mm + panel_mm + bottom_mm + fig = plt.figure(figsize=(total_w / 25.4 * scale, total_h / 25.4 * scale)) + + def frac_x(mm: float) -> float: + return mm / total_w + + def frac_y(mm: float) -> float: + return mm / total_h + + axes = [] + cursor = left_mm + for width in widths: + box = [frac_x(cursor), frac_y(bottom_mm), frac_x(width), frac_y(panel_mm)] + axes.append(fig.add_axes(box)) + cursor += width + gap_mm + return fig, (axes if len(axes) > 1 else axes[0]) + + +def polar_axes(ax: Any, half: float, *, grid: float = 500.0, + center: Sequence[float] = (0.0, 0.0)) -> None: + """世界坐标视图:等比例、留白、细网格;``center`` 为视图中心。""" + cx, cy = float(center[0]), float(center[1]) + step = grid + ticks = [] + while step <= half * 1.2: + ticks += [-step, step] + step *= 2 + ticks = sorted({round(cx + t) for t in ticks if abs(t) <= half * 1.05} | + {round(cy + t) for t in ticks if abs(t) <= half * 1.05}) + # 顺序要紧:set_xticks 会在数据范围内重新 autoscale,必须最后再钉住范围 + ax.set_xticks(ticks) + ax.set_yticks(ticks) + ax.set_xlim(cx - half, cx + half) + ax.set_ylim(cy - half, cy + half) + # 面板方框由 axes_for_panels 按数据宽高比分配,刻度范围也是 1:1, + # 不需要再让 matplotlib 调 aspect(它会反过来改写已设定的范围) + ax.set_aspect("auto") + ax.grid(True, color=C["grid"], lw=0.6) + for side in ("top", "right"): + ax.spines[side].set_visible(False) + ax.set_axisbelow(True) + + +def save(fig: Any, stem: str, sources: Sequence[dict[str, Any]], scale: float) -> dict[str, Any]: + """落盘 PNG(仅 PNG:论文插图不再维护矢量版),返回 manifest 条目。""" + OUT_DIR.mkdir(parents=True, exist_ok=True) + png = OUT_DIR / f"{stem}.png" + fig.savefig(png, format="png") + plt.close(fig) + return {"stem": stem, "png": str(png.relative_to(ROOT)), "scale": scale, + "sources": list(sources)} + + +def source(path: str | Path, **extra: Any) -> dict[str, Any]: + """记录数据来源:仓库内相对路径、sha256 前 12 位、行数。""" + p = Path(path) + p = p if p.is_absolute() else ROOT / p + digest, lines = "-", 0 + if p.is_file(): + data = p.read_bytes() + digest = hashlib.sha256(data).hexdigest()[:12] + lines = data.count(b"\n") + (0 if data.endswith(b"\n") else 1) + rel = str(p.relative_to(ROOT)) if p.is_relative_to(ROOT) else str(p) + return {"path": rel, "sha256_12": digest, "lines": lines, **extra} + + +# --------------------------------------------------------------------------- +# 行为日志:解析、计时复算、归档回退 +# --------------------------------------------------------------------------- +def parse_jsonl(path: Path) -> dict[str, Any]: + """兼容评测机 ``event=action`` 与客户端 ``event=accepted`` 两种日志。""" + meta: dict[str, Any] = {} + actions: list[dict[str, Any]] = [] + fallback: dict[str, dict[str, Any]] = {} + seq = 0 + for line in path.read_text(encoding="utf-8").splitlines(): + line = line.strip() + if not line: + continue + try: + ev = json.loads(line) + except json.JSONDecodeError: + continue + kind = ev.get("event") + if kind == "session_start": + meta = ev + elif kind == "action": + seq += 1 + actions.append(dict(seq=ev.get("seq", seq), path=ev.get("path", ""), + request=ev.get("request") or {}, + response=ev.get("response") or {}, + wall_ts_ms=ev.get("wall_ts_ms"))) + elif kind == "accepted": + fallback[str(ev.get("request_id", ""))] = ev + elif kind == "step" and str(ev.get("request_id", "")) not in fallback: + fallback[str(ev.get("request_id", ""))] = ev + if not actions: + for ev in fallback.values(): + if not ev.get("path"): + continue + seq += 1 + stamp = ev.get("logged_at_unix_s") + actions.append(dict(seq=seq, path=ev["path"], request=ev.get("request") or {}, + response=ev.get("response") or {}, + wall_ts_ms=stamp * 1000 if stamp else None)) + if not actions: + raise ValueError(f"{path} 没有可回放的动作事件") + return dict(label=path.stem, case_code=meta.get("case_code") or path.parent.name, + module=meta.get("module") or "?", robot_id=str(meta.get("robot_id") or "?"), + truth=list(meta.get("truth") or []), actions=actions, source=path) + + +def discover_runs() -> list[dict[str, Any]]: + runs: list[dict[str, Any]] = [] + if SESSIONS_DIR.is_dir(): + for log in sorted(SESSIONS_DIR.glob("*/log.jsonl")): + try: + runs.append(parse_jsonl(log)) + except ValueError: + continue + if not runs and ARCHIVE_DIR.is_dir(): + for log in sorted(ARCHIVE_DIR.glob("*.jsonl")): + try: + runs.append(parse_jsonl(log)) + except ValueError: + continue + return runs + + +def pick_run(runs: Sequence[dict[str, Any]], module: str, truth: int) -> dict[str, Any]: + cands = [r for r in runs if r["module"].startswith(module) and len(r["truth"]) >= truth + and sum(1 for a in r["actions"] if a["path"] == "/measure") > 0] + if not cands: + cands = [r for r in runs if r["module"].startswith(module)] + return sorted(cands, key=lambda r: (abs(len(r["truth"]) - truth), len(r["actions"])))[0] + + +def decompose(run: dict[str, Any]) -> dict[str, Any]: + """按附件规则逐动作复算移动 / 换频 / 动作耗时。""" + pos = (0.0, 0.0) + channel: int | None = None + rows: list[dict[str, Any]] = [] + for act in run["actions"]: + req, res = act["request"], act["response"] + move_m = switch = action_s = 0.0 + if act["path"] in ("/measure", "/clear") and "position" in req: + tgt = (float(req["position"]["x"]), float(req["position"]["y"])) + move_m = math.dist(pos, tgt) + if move_m > 0: + pos = tgt + if act["path"] == "/measure": + ch = int(req.get("channel", 0)) + switch = 0.0 if channel in (None, ch) else SWITCH_S + channel = ch + action_s = MEASURE_S + elif act["path"] == "/clear": + action_s = CLEAR_OK_S if str(res.get("clear_result")) == "success" else CLEAR_NO_S + rows.append(dict(seq=act["seq"], path=act["path"], move_s=move_m / SPEED_MPS, + switch_s=switch, action_s=action_s, move_m=move_m, + virtual_s=float(res.get("virtual_time_s") or 0.0), + hit=str(res.get("measure_result")) == "direction", + cleared=str(res.get("clear_result")) == "success", + channel=req.get("channel"), + x=req.get("position", {}).get("x"), + y=req.get("position", {}).get("y"))) + wall = [r for r in run["actions"] if r.get("wall_ts_ms")] + real_s = (wall[-1]["wall_ts_ms"] - wall[0]["wall_ts_ms"]) / 1000.0 if len(wall) > 1 else 0.0 + return dict(rows=rows, virtual_s=float(run["actions"][-1]["response"].get("virtual_time_s") or 0), + real_s=real_s, + move_s=sum(r["move_s"] for r in rows), + switch_s=sum(r["switch_s"] for r in rows), + action_s=sum(r["action_s"] for r in rows), + move_m=sum(r["move_m"] for r in rows)) + + +def solved_channels(run: dict[str, Any]) -> list[int]: + return sorted({int(a["request"]["channel"]) for a in run["actions"] + if a["path"] == "/clear" and "channel" in a["request"] + and str(a["response"].get("clear_result")) == "success"}) + + +# --------------------------------------------------------------------------- +# 几何工具 +# --------------------------------------------------------------------------- +def clip_halfplane(poly: np.ndarray, a: float, b: float, c: float) -> np.ndarray: + """Sutherland–Hodgman:半平面 a·x + b·y <= c 裁剪凸多边形。""" + if len(poly) == 0: + return poly + out: list[list[float]] = [] + n = len(poly) + for i in range(n): + cur, nxt = poly[i], poly[(i + 1) % n] + dc = a * cur[0] + b * cur[1] - c + dn = a * nxt[0] + b * nxt[1] - c + if dc <= 1e-9: + out.append(list(cur)) + if dn > 1e-9: + t = dc / (dc - dn) + out.append([cur[0] + t * (nxt[0] - cur[0]), cur[1] + t * (nxt[1] - cur[1])]) + elif dn <= 1e-9: + t = dc / (dc - dn) + out.append([cur[0] + t * (nxt[0] - cur[0]), cur[1] + t * (nxt[1] - cur[1])]) + return np.array(out) if out else np.empty((0, 2)) + + +def wedge_polygon(station: Sequence[float], bearing: float, half_deg: float, + reach: float) -> np.ndarray: + a0, a1 = math.radians(bearing - half_deg), math.radians(bearing + half_deg) + ang = np.linspace(a0, a1, 16) + pts = [[station[0], station[1]]] + \ + [[station[0] + reach * math.cos(t), station[1] + reach * math.sin(t)] for t in ang] + return np.array(pts) + + +def clip_convex(region: np.ndarray, a: float, b: float, c: float) -> np.ndarray: + """半平面 a·x + b·y <= c 裁剪(对 numpy 数组的薄封装)。""" + return clip_halfplane(np.asarray(region, dtype=float), a, b, c) + + +def clip_wedge(region: np.ndarray, station: Sequence[float], bearing: float, + half_deg: float) -> np.ndarray: + """用角域 W(s, θ ± δ) 裁剪区域。 + + 角域是两条边界射线的半平面交。示向度可能跨越 0/360 度,法向的正负不能靠叉积 + 猜:两个半平面各试一次,用"结果中心与站点的连线是否落在示向度 ±δ 内"来判定 + 哪一侧是角域内部。 + """ + region = np.asarray(region, dtype=float) + if len(region) == 0: + return region + for edge in (bearing - half_deg, bearing + half_deg): + ang = math.radians(edge) + a, b = -math.sin(ang), math.cos(ang) + c = a * station[0] + b * station[1] + candidates = [cand for cand in (clip_convex(region, a, b, c), + clip_convex(region, -a, -b, -c)) + if len(cand) >= 3] + if not candidates: + return np.empty((0, 2)) + if len(candidates) == 1: + region = candidates[0] + continue + region = min(candidates, key=lambda cand: _direction_error(cand, station, + bearing, half_deg)) + return region + + +def _direction_error(poly: np.ndarray, station: Sequence[float], bearing: float, + half_deg: float) -> float: + """多边形中心方向与示向度的偏差;用于挑正确的半平面一侧。""" + centre = poly.mean(axis=0) + dx, dy = centre[0] - station[0], centre[1] - station[1] + if abs(dx) < 1e-12 and abs(dy) < 1e-12: + return 0.0 + return abs(angle_diff(math.degrees(math.atan2(dy, dx)), bearing)) + + +def polygon_area(poly: np.ndarray) -> float: + if len(poly) < 3: + return 0.0 + x, y = poly[:, 0], poly[:, 1] + return 0.5 * abs(float(np.dot(x, np.roll(y, -1)) - np.dot(y, np.roll(x, -1)))) + + +def angle_diff(a: float, b: float) -> float: + return (a - b + 180.0) % 360.0 - 180.0 + + +def wedge_clip(station: Sequence[float], bearing: float, half_deg: float, + box: Sequence[float]) -> np.ndarray: + """角域与视窗矩形的交集,用于局部放大图。""" + x0, y0, x1, y1 = box + poly = np.array([[x0, y0], [x1, y0], [x1, y1], [x0, y1]], dtype=float) + return clip_wedge(poly, station, bearing, half_deg) + + +def q1_solve(stations: Sequence[Sequence[float]]) -> dict[str, Any]: + """调用生产求解器,避免图中数字与代码不一致。""" + sys.path.insert(0, str(ROOT / "src")) + from mcm26b import Measurement, solve # noqa: PLC0415 + res = solve([Measurement(x, y, b, h) for x, y, b, h in stations]) + dc, mec = res["diameter_circle"], res["minimum_enclosing_circle"] + return dict(vertices=np.array(res["vertices"]), pair=res["diameter_pair"], + dc=dc, mec=mec) + + +def q1_practice_case() -> dict[str, Any] | None: + for path in sorted((ROOT / "output" / "q1" / "practice").glob("*_observations.json")): + doc = json.loads(path.read_text(encoding="utf-8")) + if doc.get("result"): + doc["_path"] = path + return doc + return None + + +def load_plan(name: str) -> dict[str, Any]: + path = ROOT / "src" / "mcm26b" / "guarantee" / "plans" / f"{name}.json" + return json.loads(path.read_text(encoding="utf-8")) + + +def seven_bound(a: float = RING_RADIUS_M, radius: float = SEVEN_R) -> float: + return max(a / math.sqrt(3), math.sqrt(radius ** 2 + a ** 2 - math.sqrt(3) * radius * a)) + + +# --------------------------------------------------------------------------- +# 排版小工具 +# --------------------------------------------------------------------------- +def draw_boxes(ax: Any, boxes: Sequence[dict[str, Any]], font: Any) -> None: + """画一组统一风格的圆角框(流程示意图用)。""" + for b in boxes: + ax.add_patch(FancyBboxPatch((b["x"], b["y"]), b["w"], b["h"], + boxstyle="round,pad=0.02,rounding_size=0.6", + linewidth=1.0, edgecolor=b.get("edge", C["primary"]), + facecolor=b.get("face", C["primary_fill"]), + zorder=2)) + ax.text(b["x"] + b["w"] / 2, b["y"] + b["h"] / 2, b["label"], + ha="center", va="center", fontproperties=b.get("font", font["hei_bold"]), + fontsize=b.get("size", 8.2), color=b.get("color", C["ink"]), + linespacing=1.5, zorder=3) + + +def connect(ax: Any, p0: Sequence[float], p1: Sequence[float], *, + color: str | None = None, style: str = "-", lw: float = 1.0, + rad: float = 0.0) -> None: + ax.add_patch(FancyArrowPatch(p0, p1, arrowstyle="-|>", mutation_scale=9, + linewidth=lw, color=color or C["muted"], + linestyle=style, zorder=4, + connectionstyle=f"arc3,rad={rad}")) + + +def chips(ax: Any, items: Sequence[tuple[str, str]], *, x: float = 0.02, y: float = 0.02, + dy: float = 0.06, font: Any = None) -> None: + """左下角竖排色块图例(坐标用 axes 分数)。""" + for i, (label, color) in enumerate(items): + yy = y + i * dy + ax.add_patch(FancyBboxPatch((x, yy - 0.012), 0.018, 0.024, + boxstyle="round,pad=0.002,rounding_size=0.004", + transform=ax.transAxes, facecolor=color, + edgecolor="none", zorder=5, clip_on=False)) + ax.text(x + 0.026, yy, label, transform=ax.transAxes, va="center", ha="left", + fontproperties=font, fontsize=7.6, color=C["ink"], zorder=5) + + +# =========================================================================== +# 1. 总体思路与算法主线 +# =========================================================================== +def fig_flow_overall(font: dict[str, Any]) -> Any: + fig, ax = new_axes(170, 96) + ax.set_xlim(0, 120) + ax.set_ylim(0, 56) + ax.axis("off") + + def band(tag: str, y: float, items: Sequence[tuple[str, float, float]], + face: str, color: str) -> None: + ax.text(3.0, y + 3.0, tag, ha="center", va="center", + fontproperties=font["hei_bold"], fontsize=8.6, color=color) + for label, x, width in items: + draw_boxes(ax, [dict(x=x, y=y, w=width, h=6.0, label=label, face=face, + edge=color, font=font["song"], size=7.8)], font) + ax.plot([8.0, 116.0], [y - 1.6, y - 1.6], color=C["grid"], lw=0.8, zorder=1) + + band("L0", 46.0, [ + ("区域 Ω:半径 1800 m", 9.0, 26.5), + ("移动 5 m/s · 检测 5 s", 36.0, 26.5), + ("换频 1 s · 清除 5/3 s", 63.0, 26.5), + ("源 10~16 个 · 频道 1~20", 90.0, 25.5)], C["primary_fill"], C["primary"]) + + band("L1", 33.0, [ + ("证据层:候选集与粒子幸存集", 9.0, 33.0), + ("决策层:选点与任务表", 44.0, 33.0), + ("执行层:串行客户端", 79.0, 33.0)], C["primary_fill"], C["primary"]) + for x in (42.6, 77.6): + connect(ax, (x, 36.0), (x + 1.4, 36.0), color=C["ink"]) + + band("L2", 20.0, [ + ("问题 1 定位解算", 9.0, 25.5), + ("问题 2 第二点选择", 35.5, 25.5), + ("问题 3 全向搜索", 62.0, 25.5), + ("问题 4 混合定向", 88.5, 27.0)], C["accent_fill"], C["accent"]) + + band("L3", 7.0, [ + ("发现闭环", 9.0, 33.0), + ("定位闭环", 44.0, 33.0), + ("清除闭环", 79.0, 33.0)], C["success_fill"], C["success"]) + return fig + + +# =========================================================================== +# 2. 执行步骤:会话状态机 +# =========================================================================== +def fig_steps_state_machine(font: dict[str, Any]) -> Any: + fig, ax = new_axes(160, 34) + ax.set_xlim(0, 100) + ax.set_ylim(0, 22) + ax.axis("off") + states = [("IDLE", 3, C["grid"], C["muted"]), + ("倒计时 5 s", 26, C["warn_fill"], C["warn"]), + ("OPEN 接口开放", 49, C["success_fill"], C["success"]), + ("CLOSED 断连", 72, C["accent_fill"], C["accent"])] + for label, x, face, edge in states: + draw_boxes(ax, [dict(x=x, y=9, w=22, h=6.5, label=label, face=face, edge=edge, + font=font["hei_bold"], size=8.4)], font) + for i in range(3): + connect(ax, (25 + i * 23 + 0.3, 12.2), (26 + i * 23 - 0.5, 12.2), color=C["ink"]) + ax.text(50, 6.2, "现实预算 1200 s(程序)与测试窗口 1500 s(服务端)独立计时", + ha="center", fontproperties=font["song"], fontsize=7.6, color=C["muted"]) + ax.text(83, 4.0, "剩余不足 60 s 时预留 /exit", ha="center", + fontproperties=font["song"], fontsize=7.6, color=C["accent"]) + return fig + + +# =========================================================================== +# 3. 执行时间:附件示例逐步推演 +# =========================================================================== +EXAMPLE_STEPS = [ + ("/enter", 0.0, 0.0, 0.0), + ("/measure ch1", 100.0, 0.0, 5.0), + ("/measure ch2", 0.0, 1.0, 5.0), + ("/clear ch3", 80.0, 0.0, 3.0), + ("/measure ch2", 0.0, 0.0, 5.0), + ("/exit", 0.0, 0.0, 0.0), +] + + +def fig_timing_attachment(font: dict[str, Any]) -> Any: + fig, ax = new_axes(160, 46) + y = np.arange(len(EXAMPLE_STEPS))[::-1] + move = np.array([s[1] for s in EXAMPLE_STEPS]) + switch = np.array([s[2] for s in EXAMPLE_STEPS]) + action = np.array([s[3] for s in EXAMPLE_STEPS]) + ax.barh(y, move, color=C["primary"], height=0.6, label="移动 L/5") + ax.barh(y, switch, left=move, color=C["warn"], height=0.6, label="换频 1 s") + ax.barh(y, action, left=move + switch, color=C["success"], height=0.6, + label="检测/清除动作") + cumulative = np.cumsum(move + switch + action) + for i, (yy, total, acc) in enumerate(zip(y, move + switch + action, cumulative)): + if total > 0: + ax.text(move[i] + switch[i] + action[i] + 2, yy, f"{total:.0f} s", + va="center", fontproperties=font["times"], fontsize=7.6, color=C["ink"]) + ax.text(-4, yy, f"{acc:.0f}", va="center", ha="right", + fontproperties=font["times_bold"], fontsize=7.8, color=C["accent"]) + ax.set_yticks(y) + ax.set_yticklabels([s[0] for s in EXAMPLE_STEPS], fontproperties=font["times"], + fontsize=7.8) + ax.set_xlabel("虚拟耗时 / s", fontproperties=font["song"]) + ax.set_xlim(-14, 132) + ax.text(-4, len(EXAMPLE_STEPS) - 0.35, "累计", ha="right", va="center", + fontproperties=font["song"], fontsize=7.6, color=C["accent"]) + ax.legend(prop=font["song"], frameon=False, loc="lower right", ncols=3) + for side in ("top", "right"): + ax.spines[side].set_visible(False) + ax.grid(True, axis="x", color=C["grid"], lw=0.6) + ax.set_axisbelow(True) + return fig + + +# =========================================================================== +# 4. 执行时间:实测日志分解 +# =========================================================================== +def fig_timing_measured(run: dict[str, Any], font: dict[str, Any]) -> Any: + tl = decompose(run) + rows = tl["rows"] + seq = np.array([r["seq"] for r in rows]) + move = np.cumsum([r["move_s"] for r in rows]) + switch = np.cumsum([r["switch_s"] for r in rows]) + action = np.cumsum([r["action_s"] for r in rows]) + total = move + switch + action + parts = [tl["move_s"], tl["action_s"], tl["switch_s"]] + labels = ["移动", "检测/清除", "换频"] + colors = [C["primary"], C["success"], C["warn"]] + + fig, (ax, ax2) = new_axes(170, 54, ncols=2, width_ratios=[1.45, 1.0]) + ax.stackplot(seq, move, switch, action, colors=colors, + labels=["移动 L/5", "检测/清除动作", "换频 1 s"], lw=0) + ax.set_xlim(seq[0], seq[-1]) + ax.set_ylim(0, total[-1] * 1.08) + ax.set_xlabel("动作序号", fontproperties=font["song"]) + ax.set_ylabel("累计虚拟时间 / s", fontproperties=font["song"]) + ax.legend(prop=font["song"], frameon=False, loc="upper left") + for side in ("top", "right"): + ax.spines[side].set_visible(False) + ax.grid(True, axis="y", color=C["grid"], lw=0.6) + ax.set_axisbelow(True) + + # 右:构成条形 + 汇总(同一坐标下三段,末段极窄故编号标注) + ax2.set_xlim(0, 1) + ax2.set_ylim(0, 1) + ax2.axis("off") + bar_y, bar_h = 0.62, 0.14 + left = 0.0 + for i, (value, color) in enumerate(zip(parts, colors)): + frac = value / total[-1] + ax2.add_patch(FancyBboxPatch((left, bar_y), frac, bar_h, + boxstyle="round,pad=0,rounding_size=0.005", + facecolor=color, edgecolor="none")) + if frac > 0.06: + ax2.text(left + frac / 2, bar_y + bar_h / 2, f"{value:,.0f} s", ha="center", + va="center", fontproperties=font["song"], fontsize=7.4, + color="white") + left += frac + ax2.text(0.0, 0.84, f"虚拟 {total[-1]:,.1f} s", fontproperties=font["song"], + fontsize=7.8, color=C["ink"]) + ax2.text(0.5, 0.84, f"现实 {tl['real_s']:.2f} s", fontproperties=font["song"], + fontsize=7.8, color=C["ink"]) + ax2.text(1.0, 0.84, f"加速 {total[-1] / max(tl['real_s'], 1e-9):,.0f} 倍", ha="right", + fontproperties=font["song"], fontsize=7.8, color=C["accent"]) + for i, (value, label, color) in enumerate(zip(parts, labels, colors)): + ax2.add_patch(FancyBboxPatch((0.0 + i * 0.36, 0.40), 0.03, 0.05, + boxstyle="round,pad=0.002,rounding_size=0.01", + facecolor=color, edgecolor="none")) + ax2.text(0.05 + i * 0.36, 0.425, + f"{i + 1} {label} {value:,.0f} s", fontproperties=font["song"], + fontsize=7.4, va="center") + ax2.text(0.0, 0.24, f"检测 {sum(1 for r in rows if r['path'] == '/measure')} 次 · " + f"清除 {sum(1 for r in rows if r['path'] == '/clear')} 次 · " + f"里程 {tl['move_m'] / 1000:.1f} km", + fontproperties=font["song"], fontsize=7.4, color=C["muted"]) + return fig + + +# =========================================================================== +# 5. 问题一:交会定位区域 +# =========================================================================== +def _q1_data() -> dict[str, Any]: + case = q1_practice_case() + if case: + return dict(subtitle=f"官方演练 {case['case_code']}", + stations=[(m["x"], m["y"], m["bearing_deg"], m["half_angle_deg"]) + for m in case["measurements"]], + verts=np.array(case["result"]["vertices"]), + dc=case["result"]["diameter_circle"], + mec=case["result"]["minimum_enclosing_circle"], + src=case["_path"]) + doc = json.loads((ROOT / "examples" / "q1" / "triangle.json").read_text(encoding="utf-8")) + sol = q1_solve([(m["x"], m["y"], m["bearing_deg"], m.get("half_angle_deg", 1.0)) + for m in doc["measurements"]]) + return dict(subtitle="反例算例 triangle.json", + stations=[(m["x"], m["y"], m["bearing_deg"], m.get("half_angle_deg", 1.0)) + for m in doc["measurements"]], + verts=sol["vertices"], dc=sol["dc"], mec=sol["mec"], + src=ROOT / "examples" / "q1" / "triangle.json") + + +def fig_q1_meetup(font: dict[str, Any]) -> Any: + data = _q1_data() + stations = data["stations"] + xs = [s[0] for s in stations] + ys = [s[1] for s in stations] + cx, cy = (min(xs) + max(xs)) / 2, (min(ys) + max(ys)) / 2 + half = max(max(xs) - min(xs), max(ys) - min(ys)) / 2 * 1.35 + 60 + reach = 2.4 * half + mec_c = data["mec"]["center"] + mec_r = data["mec"]["radius_m"] + dc_c, dc_r = data["dc"]["center"], data["dc"]["radius_m"] + # 放大窗口取定位区域外接框的 1.8 倍,使多边形、直径圆、MEC 同框且尺寸可比 + verts = data["verts"] + zoom_c = (float(verts[:, 0].mean()), float(verts[:, 1].mean())) + span = float(np.abs(verts - np.array(zoom_c)).max()) + zoom = max(1.8 * span, 0.8 * mec_r + span, 12.0) + + fig, axes = axes_for_panels(62.0, [1.0, 1.0], width_ratios=[1.0, 1.0]) + ax, axz = axes + polar_axes(ax, half, grid=half / 2) + for sx, sy, bearing, hd in stations: + ax.add_patch(Polygon(wedge_polygon((sx, sy), bearing, hd, reach), closed=True, + facecolor=C["primary"], alpha=0.16, edgecolor="none")) + ax.plot([sx], [sy], marker="o", ms=4, color=C["primary"]) + ax.annotate(f"({sx:.0f}, {sy:.0f})", (sx, sy), textcoords="offset points", + xytext=(6, 4), fontproperties=font["times"], fontsize=7.2, + color=C["primary"]) + ax.add_patch(Polygon(data["verts"], closed=True, facecolor=C["accent"], + edgecolor=C["accent"], lw=1.0)) + ax.annotate("定位区域 P →", (float(data["verts"][:, 0].mean()), + float(data["verts"][:, 1].mean())), + textcoords="offset points", xytext=(14, -18), + fontproperties=font["song"], fontsize=7.6, color=C["accent"], + arrowprops=dict(arrowstyle="-", color=C["accent"], lw=0.9)) + ax.set_xlabel("x / m", fontproperties=font["song"]) + ax.set_ylabel("y / m", fontproperties=font["song"]) + + polar_axes(axz, zoom, grid=zoom / 2, center=zoom_c) + axz.set_xticks([]) + axz.set_yticks([]) + axz.set_ylabel("") + # 放大面板:角域按面板的坐标范围裁剪,范围与 xlim/ylim 一致 + xlim, ylim = axz.get_xlim(), axz.get_ylim() + box = (float(xlim[0]), float(ylim[0]), float(xlim[1]), float(ylim[1])) + for sx, sy, bearing, hd in stations: + poly = wedge_clip((sx, sy), bearing, hd, box) + if len(poly): + axz.add_patch(Polygon(poly, closed=True, facecolor=C["primary"], + alpha=0.28, edgecolor="none")) + region = np.array([[box[0], box[1]], [box[2], box[1]], + [box[2], box[3]], [box[0], box[3]]], dtype=float) + for sx, sy, bearing, hd in stations: + region = clip_wedge(region, (sx, sy), bearing, hd) + if len(region) >= 3: + axz.add_patch(Polygon(region, closed=True, facecolor=C["accent_fill"], + edgecolor=C["accent"], lw=1.6)) + axz.add_patch(Polygon(data["verts"], closed=True, facecolor=C["accent_fill"], + edgecolor=C["accent"], lw=1.0)) + axz.add_patch(Circle(dc_c, dc_r, facecolor="none", edgecolor=C["violet"], + lw=1.2, ls=(0, (5, 3)))) + axz.add_patch(Circle(mec_c, mec_r, facecolor="none", edgecolor=C["success"], lw=1.4)) + axz.plot([dc_c[0]], [dc_c[1]], marker="o", ms=3.4, color=C["violet"]) + axz.plot([mec_c[0]], [mec_c[1]], marker="o", ms=3.4, color=C["success"]) + outside = max(data["verts"], key=lambda v: math.dist(v, dc_c)) + axz.annotate("", xy=outside, xytext=dc_c, + arrowprops=dict(arrowstyle="-|>", color=C["accent"], lw=1.0)) + axz.annotate("E > 0", (outside[0], outside[1]), textcoords="offset points", + xytext=(10, 6), fontproperties=font["times"], fontsize=7.4, + color=C["accent"]) + axz.set_xlabel(f"x / m(放大 ±{zoom:.0f} m)", fontproperties=font["song"]) + chips(ax, [("前向角域 W(s, θ ± 1°)", C["primary"]), ("定位区域 P", C["accent"])]) + chips(axz, [("直径圆(不覆盖)", C["violet"]), ("最小包围圆 MEC", C["success"])]) + return fig + + +# =========================================================================== +# 6. 问题一:直径圆反例 +# =========================================================================== +def fig_q1_counterexample(font: dict[str, Any]) -> Any: + doc = json.loads((ROOT / "examples" / "q1" / "triangle.json").read_text(encoding="utf-8")) + stations = [(m["x"], m["y"], m["bearing_deg"], m.get("half_angle_deg", 1.0)) + for m in doc["measurements"]] + sol = q1_solve(stations) + verts = sol["vertices"] + dc, mec = sol["dc"], sol["mec"] + mec_r = mec["radius_m"] + mec_c, dc_c = mec["center"], dc["center"] + # 反例的定位区域是边长 40 m 的等边三角形:取 1.8 倍直径做放大窗口 + zoom = max(1.8 * float(np.abs(verts - np.array(mec_c)).max()) * 2.0, 40.0) + + fig, axes = axes_for_panels(60.0, [1.0, 1.0]) + ax, axz = axes + half = 1200.0 + polar_axes(ax, half, grid=400.0) + for sx, sy, bearing, hd in stations: + ax.add_patch(Polygon(wedge_polygon((sx, sy), bearing, hd, 3 * half), closed=True, + facecolor=C["primary"], alpha=0.14, edgecolor="none")) + ax.plot([sx], [sy], marker="o", ms=4, color=C["primary"]) + ax.annotate(f"({sx:.0f}, {sy:.0f})", (sx, sy), textcoords="offset points", + xytext=(6, 4), fontproperties=font["times"], fontsize=7.2, + color=C["primary"]) + ax.add_patch(Polygon(verts, closed=True, facecolor=C["accent"], edgecolor=C["accent"])) + ax.set_xlabel("x / m", fontproperties=font["song"]) + ax.set_ylabel("y / m", fontproperties=font["song"]) + + polar_axes(axz, zoom, grid=zoom / 2, center=mec_c) + axz.set_xticks([]) + axz.set_yticks([]) + axz.set_ylabel("") + box = (mec_c[0] - zoom, mec_c[1] - zoom, mec_c[0] + zoom, mec_c[1] + zoom) + for sx, sy, bearing, hd in stations: + poly = wedge_clip((sx, sy), bearing, hd, box) + if len(poly): + axz.add_patch(Polygon(poly, closed=True, facecolor=C["primary"], + alpha=0.24, edgecolor="none")) + region = np.array([[box[0], box[1]], [box[2], box[1]], + [box[2], box[3]], [box[0], box[3]]], dtype=float) + for sx, sy, bearing, hd in stations: + region = clip_wedge(region, (sx, sy), bearing, hd) + if len(region) >= 3: + axz.add_patch(Polygon(region, closed=True, facecolor=C["accent_fill"], + edgecolor=C["accent"], lw=1.6)) + axz.add_patch(Circle(dc_c, dc["radius_m"], facecolor="none", edgecolor=C["violet"], + lw=1.4, ls=(0, (5, 3)))) + axz.add_patch(Circle(mec_c, mec_r, facecolor="none", edgecolor=C["success"], lw=1.4)) + outside = max(verts, key=lambda v: math.dist(v, dc_c)) + axz.annotate("最大超出顶点", xy=outside, xytext=(outside[0] + 6, outside[1] - 10), + fontproperties=font["song"], fontsize=7.6, color=C["accent"], + arrowprops=dict(arrowstyle="-|>", color=C["accent"], lw=1.0)) + axz.set_xlabel(f"x / m(放大 ±{zoom:.0f} m)", fontproperties=font["song"]) + chips(axz, [("直径圆(不覆盖)", C["violet"]), ("最小包围圆 MEC", C["success"])]) + return fig + + +# =========================================================================== +# 7. 问题二:保证接收盘 +# =========================================================================== +def fig_q2_safe_disk(font: dict[str, Any]) -> Any: + delta = math.radians(1.0) + a = 1500.0 / (2 * math.cos(delta)) + safe = R_EFF - a + bearing = 30.0 + c = (a * math.cos(math.radians(bearing)), a * math.sin(math.radians(bearing))) + + fig, axes = axes_for_panels(64.0, [1.0, 1.0], width_ratios=[1.0, 1.0]) + ax, axz = axes + half = 1900.0 + polar_axes(ax, half, grid=500.0) + ax.add_patch(Circle((0, 0), OMEGA_R, facecolor="none", edgecolor=C["primary"], lw=1.2)) + ax.add_patch(Polygon(wedge_polygon((0, 0), bearing, 1.0, 1500.0), closed=True, + facecolor=C["accent"], alpha=0.5, edgecolor=C["accent"], lw=1.0)) + ax.plot([0], [0], marker="o", ms=4, color=C["accent"]) + ax.annotate("s1", (0, 0), textcoords="offset points", xytext=(6, -10), + fontproperties=font["times"], fontsize=7.6, color=C["accent"]) + ax.add_patch(Circle(c, a, facecolor="none", edgecolor=C["violet"], lw=1.0, + ls=(0, (5, 3)))) + ax.add_patch(Circle(c, safe, facecolor=C["success"], alpha=0.35, + edgecolor=C["success"], lw=1.2)) + ax.annotate("", xy=c, xytext=(0, 0), + arrowprops=dict(arrowstyle="-|>", color=C["violet"], lw=1.0)) + ax.annotate(f"a = {a:.1f} m", ((c[0] + 0) / 2, (c[1] + 0) / 2), + textcoords="offset points", xytext=(-6, 26), ha="right", + fontproperties=font["song"], fontsize=7.6, color=C["violet"], + arrowprops=dict(arrowstyle="-", color=C["violet"], lw=0.8)) + ax.annotate(f"安全盘半径 {safe:.1f} m", (c[0], c[1] - safe * 0.7), + textcoords="offset points", xytext=(14, -20), ha="left", + fontproperties=font["song"], fontsize=7.6, color=C["success"], + arrowprops=dict(arrowstyle="-", color=C["success"], lw=0.8)) + ax.text(0, OMEGA_R * 0.98, "Ω:R = 1800 m", fontproperties=font["song"], + fontsize=7.6, color=C["primary"], ha="center", va="top") + ax.set_xlabel("x / m", fontproperties=font["song"]) + ax.set_ylabel("y / m", fontproperties=font["song"]) + + # 右:安全性依据(两半径相加 = 1000 m) + axz.set_aspect("auto") + axz.axis("off") + axz.set_xlim(-1.15, 1.25) + axz.set_ylim(-0.35, 1.05) + r_safe, r_a = safe / 1000.0, a / 1000.0 + axz.add_patch(Circle((0, 0.45), r_a, facecolor=C["violet"], alpha=0.16, + edgecolor=C["violet"], lw=1.0, ls=(0, (4, 3)))) + axz.add_patch(Circle((0, 0.45), r_safe, facecolor=C["success"], alpha=0.35, + edgecolor=C["success"], lw=1.2)) + axz.plot([0], [0.45], marker="o", ms=3.4, color=C["ink"]) + ang = math.radians(20) + axz.annotate("", xy=(r_a * math.cos(ang), 0.45 + r_a * math.sin(ang)), + xytext=(0, 0.45), arrowprops=dict(arrowstyle="-", color=C["violet"], lw=1.0)) + axz.annotate("", xy=(-r_safe * math.cos(ang), 0.45 - r_safe * math.sin(ang)), + xytext=(0, 0.45), arrowprops=dict(arrowstyle="-", color=C["success"], lw=1.0)) + axz.text(0.30, 0.72, f"a = {a:.1f} m", fontproperties=font["song"], fontsize=7.6, + color=C["violet"]) + axz.text(-0.62, 0.18, f"1000 − a = {safe:.1f} m", fontproperties=font["song"], + fontsize=7.6, color=C["success"]) + chips(ax, [("前向角域 W(s1)", C["accent"]), ("截断角域外接圆 B(c, a)", C["violet"]), + ("安全候选盘 B(c, 1000 − a)", C["success"])]) + return fig + + +# =========================================================================== +# 8. 问题三:七点覆盖 +# =========================================================================== +def fig_q3_seven_coverage(font: dict[str, Any]) -> Any: + a = RING_RADIUS_M + stations = [(0.0, 0.0)] + [(a * math.cos(k * math.pi / 3), a * math.sin(k * math.pi / 3)) + for k in range(6)] + bound = seven_bound(a) + fig, axes = axes_for_panels(66.0, [1.0, 0.95], width_ratios=[1.0, 0.95]) + ax, axr = axes + half = 2050.0 + polar_axes(ax, half, grid=600.0) + ax.add_patch(Circle((0, 0), OMEGA_R, facecolor="#f7fafc", edgecolor=C["primary"], lw=1.4)) + for px, py in stations: + ax.add_patch(Circle((px, py), R_EFF, facecolor=C["success"], alpha=0.28, + edgecolor=C["success"], lw=0.8)) + ax.add_patch(Circle((0, 0), OMEGA_R, facecolor="none", edgecolor=C["primary"], lw=1.4)) + for px, py in stations: + ax.plot([px], [py], marker="o", ms=4.2, color=C["accent"]) + ax.plot([0, a], [0, 0], color=C["accent"], lw=0.9) + ax.text(a / 2, 60, f"a = {a:.1f} m", ha="center", fontproperties=font["times"], + fontsize=7.6, color=C["accent"]) + ax.plot([0], [-SEVEN_R], marker="o", ms=4.6, mfc="none", mec=C["accent"], mew=1.2) + ax.annotate(f"最坏点 {bound:.2f} m", (0, -SEVEN_R), textcoords="offset points", + xytext=(-4, 14), ha="center", fontproperties=font["song"], fontsize=7.6, + color=C["accent"], + arrowprops=dict(arrowstyle="-", color=C["accent"], lw=0.8)) + ax.text(0, OMEGA_R, "Ω", ha="center", va="bottom", fontproperties=font["song"], + fontsize=8, color=C["primary"]) + ax.set_xlabel("x / m", fontproperties=font["song"]) + ax.set_ylabel("y / m", fontproperties=font["song"]) + chips(ax, [("覆盖站点(原点 + 六等分环)", C["accent"]), ("1000 m 接收盘", C["success"])]) + + axr.axis("off") + axr.set_xlim(0, 1) + axr.set_ylim(0, 1) + rows = [("七点解析(默认)", "7", f"{bound:.2f} m", C["success_fill"], C["success"]), + ("49 点网格基线", "49", "989.95 m", "#f7f9fb", C["muted"]), + ("31 点最小命中集(题 4)", "31", "990.05 m", "#f7f9fb", C["muted"])] + header = ["方案", "点数", "覆盖半径上界"] + xs = [0.02, 0.62, 0.78] + for x, head in zip(xs, header): + axr.text(x, 0.9, head, fontproperties=font["hei_bold"], fontsize=7.8, + color=C["primary"]) + for i, (name, count, dist, face, edge) in enumerate(rows): + y = 0.76 - i * 0.13 + axr.add_patch(FancyBboxPatch((0.0, y - 0.045), 1.0, 0.11, + boxstyle="round,pad=0.004,rounding_size=0.02", + facecolor=face, edgecolor=edge, lw=0.8)) + axr.text(xs[0], y, name, fontproperties=font["song"], fontsize=7.6) + axr.text(xs[1], y, count, fontproperties=font["times"], fontsize=7.6) + axr.text(xs[2], y, dist, fontproperties=font["times"], fontsize=7.6) + return fig + + +# =========================================================================== +# 9. 问题四:31 点最小命中集 +# =========================================================================== +def fig_q4_mincover(font: dict[str, Any]) -> Any: + plan = load_plan("q4_mincover_v2") + pts = np.array(plan["points"], dtype=float) + cert = plan["certificate"] + + fig, axes = axes_for_panels(64.0, [1.0, 1.0], width_ratios=[1.0, 1.0]) + ax, axr = axes + half = 2150.0 + polar_axes(ax, half, grid=600.0) + ax.add_patch(Circle((0, 0), OMEGA_R, facecolor="#f7fafc", edgecolor=C["primary"], lw=1.4)) + ax.plot(pts[:, 0], pts[:, 1], ls="none", marker="o", ms=4.2, color=C["accent"], + label=f"{len(pts)} 个覆盖点") + ax.legend(prop=font["song"], frameon=False, loc="lower left") + ax.text(0, OMEGA_R, "Ω", ha="center", va="bottom", fontproperties=font["song"], + fontsize=8, color=C["primary"]) + ax.set_xlabel("x / m", fontproperties=font["song"]) + ax.set_ylabel("y / m", fontproperties=font["song"]) + ax.set_xlabel("x / m", fontproperties=font["song"]) + + # 右:forward_half_disk 语义与证书 + axr.axis("off") + axr.set_xlim(0, 1) + axr.set_ylim(0, 1) + axr.add_patch(Circle((0.36, 0.66), 0.24, facecolor="#f7f9fb", edgecolor=C["muted"], + lw=0.9)) + half_disk = [[0.36, 0.66]] + [[0.36 + 0.24 * math.cos(math.radians(-90 + 180 * i / 24)), + 0.66 + 0.24 * math.sin(math.radians(-90 + 180 * i / 24))] + for i in range(25)] + axr.add_patch(Polygon(half_disk, closed=True, facecolor=C["accent"], alpha=0.32, + edgecolor="none")) + axr.annotate("", xy=(0.57, 0.66), xytext=(0.36, 0.66), + arrowprops=dict(arrowstyle="-|>", color=C["accent"], lw=1.2)) + axr.plot([0.36, 0.36], [0.42, 0.90], color=C["accent"], lw=0.9, ls=(0, (4, 3))) + axr.annotate("", xy=(0.60, 0.95), xytext=(0.12, 0.95), + arrowprops=dict(arrowstyle="<->", color=C["muted"], lw=0.8)) + axr.text(0.36, 0.90, "覆盖半径 1000 m", ha="center", fontproperties=font["song"], + fontsize=7.4, color=C["muted"]) + axr.text(0.62, 0.60, "朝向未知\n±90° 前向半盘", ha="left", va="top", + fontproperties=font["song"], fontsize=7.4, color=C["accent"], linespacing=1.6) + return fig +# =========================================================================== +# 10/11. WebUI 回放复现 +# =========================================================================== +def fig_replay(run: dict[str, Any], font: dict[str, Any], *, directional: bool) -> Any: + tl = decompose(run) + rows = tl["rows"] + truth = run["truth"] + solved = set(solved_channels(run)) + + fig = plt.figure(figsize=(170 / 25.4, 108 / 25.4)) + ax = fig.add_axes([0.04, 0.30, 0.60, 0.66]) + polar_axes(ax, 2100.0, grid=1000.0) + ax.add_patch(Circle((0, 0), OMEGA_R, facecolor="#f7fafc", edgecolor=C["primary"], lw=1.4)) + for src in truth: + ch = int(src["channel"]) + color = C["accent"] if ch in solved else C["warn"] + ax.plot([src["x"]], [src["y"]], marker="o", ms=5, color=color, zorder=5) + ax.annotate(f"ch{ch}", (src["x"], src["y"]), textcoords="offset points", + xytext=(5, 2), fontproperties=font["times"], fontsize=6.8, color=color) + if directional and src.get("directional"): + hd = math.radians(float(src.get("heading_deg") or 0.0)) + ax.annotate("", xy=(src["x"] + 200 * math.cos(hd), src["y"] + 200 * math.sin(hd)), + xytext=(src["x"], src["y"]), + arrowprops=dict(arrowstyle="-|>", color=C["accent"], lw=1.0)) + path = [(0.0, 0.0)] + for row in rows: + if row["x"] is None: + continue + if (row["x"], row["y"]) != path[-1]: + path.append((row["x"], row["y"])) + if len(path) > 1: + px, py = zip(*path) + ax.plot(px, py, color=C["primary"], lw=1.1, alpha=0.85, zorder=3) + for act, row in zip(run["actions"], rows): + if row["x"] is None: + continue + if act["path"] == "/measure" and row["hit"]: + bearing = math.radians(float(act["response"].get("svd_deg") or 0.0)) + ax.annotate("", xy=(row["x"] + 220 * math.cos(bearing), + row["y"] + 220 * math.sin(bearing)), + xytext=(row["x"], row["y"]), + arrowprops=dict(arrowstyle="-|>", color=C["success"], lw=0.7, + alpha=0.55)) + ax.plot([row["x"]], [row["y"]], marker="o", ms=2.6, color=C["success"]) + elif act["path"] == "/clear": + ax.plot([row["x"]], [row["y"]], marker="o", ms=7, mfc="none", + mec=C["success"] if row["cleared"] else C["muted"], mew=1.2) + if row["cleared"]: + ax.plot([row["x"]], [row["y"]], marker="x", ms=5, color=C["success"], + mew=1.6) + ax.set_xlabel("x / m", fontproperties=font["song"]) + ax.set_ylabel("y / m", fontproperties=font["song"]) + ax.legend(handles=[ + Line2D([], [], marker="o", ls="none", color=C["success"], label="已清除频道"), + Line2D([], [], marker="o", ls="none", color=C["warn"], label="未清除频道"), + Line2D([], [], color=C["accent"], lw=1.2, label="定向源朝向"), + Line2D([], [], color=C["success"], lw=0.8, label="检测示向度"), + ], prop=font["song"], frameon=False, loc="upper center", + bbox_to_anchor=(0.5, -0.13), ncols=4) + + # 右侧:事件流水(前 10 条) + axt = fig.add_axes([0.70, 0.30, 0.285, 0.62]) + axt.axis("off") + axt.set_xlim(0, 1) + axt.set_ylim(0, 1) + axt.text(0.0, 1.0, run["case_code"], fontproperties=font["times_bold"], fontsize=7.8, + color=C["primary"], va="top") + axt.text(0.0, 0.93, f"{run['module']} · 源 {len(truth)} · " + f"全清 {len(solved)}/{len(truth)}", fontproperties=font["song"], + fontsize=7.4, color=C["muted"], va="top") + axt.text(0.0, 0.86, "动作 参数 虚拟 t/s", fontproperties=font["hei_bold"], + fontsize=7.4, color=C["primary"], va="top") + for i, (act, row) in enumerate(list(zip(run["actions"], rows))[:10]): + if act["path"] == "/measure": + detail = f"ch{row['channel']} ({row['x']:.0f},{row['y']:.0f})" + elif act["path"] == "/clear": + detail = f"ch{row['channel']} {'成功' if row['cleared'] else '未发现'}" + elif act["path"] == "/enter": + detail = "启动" + else: + detail = "退出" + axt.text(0.0, 0.78 - i * 0.075, act["path"], fontproperties=font["times"], + fontsize=7.2, va="top") + axt.text(0.45, 0.78 - i * 0.075, detail, fontproperties=font["song"], + fontsize=7.2, va="top") + axt.text(1.0, 0.78 - i * 0.075, f"{row['virtual_s']:.0f}", + fontproperties=font["times"], fontsize=7.2, va="top", ha="right") + + # 底部:虚拟时间轴(检测命中 / 清除刻度) + axb = fig.add_axes([0.04, 0.13, 0.945, 0.09]) + axb.set_xlim(0, max(tl["virtual_s"], 1e-9)) + axb.set_ylim(0, 1) + axb.axis("off") + axb.add_patch(FancyBboxPatch((0, 0.35), tl["virtual_s"], 0.3, + boxstyle="round,pad=0,rounding_size=0", + facecolor=C["primary_fill"], edgecolor="none")) + for act, row in zip(run["actions"], rows): + if act["path"] == "/measure" and row["hit"]: + axb.plot([row["virtual_s"], row["virtual_s"]], [0.2, 0.8], color=C["accent"], + lw=0.9) + elif act["path"] == "/clear" and row["cleared"]: + axb.plot([row["virtual_s"], row["virtual_s"]], [0.05, 0.95], color=C["success"], + lw=1.4) + axb.text(0, 1.15, "0 s", fontproperties=font["times"], fontsize=7.2, color=C["muted"]) + axb.text(tl["virtual_s"], 1.15, f"{tl['virtual_s']:,.0f} s", ha="right", + fontproperties=font["times"], fontsize=7.2, color=C["muted"]) + axb.text(tl["virtual_s"] / 2, 1.15, "竖线:检测到信号(红)/ 成功清除(绿)", + ha="center", fontproperties=font["song"], fontsize=7.2, color=C["muted"]) + return fig + + +# =========================================================================== +# 入口 +# =========================================================================== +def build_figures(only: Sequence[str] | None, scale: float) -> list[dict[str, Any]]: + font = setup_style() + want = set(only) if only else None + runs = discover_runs() + q3 = pick_run(runs, "q3", 10) if runs else None + q4 = pick_run(runs, "q4", 12) if runs else None + if not runs: + print("[fig] 未找到 JSONL,跳过与日志相关的 3 张图") + + jobs: list[tuple[str, Callable[[], Any], list[dict[str, Any]]]] = [ + ("flow-overall-architecture", lambda: fig_flow_overall(font), + [source("src/mcm26b/config.py"), source("docs/B题建模分析与实施计划.md")]), + ("steps-state-machine", lambda: fig_steps_state_machine(font), + [source("docs/协议规则表与状态机.md"), source("src/mcm26b/protocol/client.py")]), + ("timing-attachment-example-105-111-194-199", lambda: fig_timing_attachment(font), + [source("docs/协议规则表与状态机.md")]), + ("geo-q1-convex-intersection-zoom", lambda: fig_q1_meetup(font), []), + ("geo-q1-diameter-circle-counterexample", lambda: fig_q1_counterexample(font), + [source("examples/q1/triangle.json")]), + ("geo-q2-guaranteed-reception-disk", lambda: fig_q2_safe_disk(font), + [source("src/mcm26b/config.py"), source("docs/algo-2.md")]), + ("geo-q3-seven-point-coverage", lambda: fig_q3_seven_coverage(font), + [source("src/mcm26b/planner/seven.py"), source("docs/algo-3.md")]), + ("geo-q4-minimum-cover-31-points", lambda: fig_q4_mincover(font), + [source("src/mcm26b/guarantee/plans/q4_mincover_v2.json"), source("docs/algo-4.md")]), + ] + if q3: + jobs.append(("timing-measured-q3-10-sources", lambda: fig_timing_measured(q3, font), + [source(q3["source"], case_code=q3["case_code"], module=q3["module"])])) + jobs.append(("replay-webui-q3-omnidirectional", + lambda: fig_replay(q3, font, directional=False), + [source(q3["source"], case_code=q3["case_code"])])) + if q4: + jobs.append(("replay-webui-q4-directional", + lambda: fig_replay(q4, font, directional=True), + [source(q4["source"], case_code=q4["case_code"])])) + + entries: list[dict[str, Any]] = [] + for stem, maker, sources in jobs: + if want and stem not in want: + continue + fig = maker() + if stem == "geo-q1-convex-intersection-zoom": + sources = [source(_q1_data()["src"])] + entry = save(fig, stem, sources, scale) + entries.append(entry) + print(f"[fig] {stem:<44} → {entry['png']}") + return entries + + +def main() -> int: + names = ["flow-overall-architecture", "steps-state-machine", + "timing-attachment-example-105-111-194-199", "timing-measured-q3-10-sources", + "geo-q1-convex-intersection-zoom", "geo-q1-diameter-circle-counterexample", + "geo-q2-guaranteed-reception-disk", "geo-q3-seven-point-coverage", + "geo-q4-minimum-cover-31-points", "replay-webui-q3-omnidirectional", + "replay-webui-q4-directional"] + parser = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + parser.add_argument("--only", default="", help="逗号分隔的图名子集") + parser.add_argument("--scale", type=float, default=1.0, help="尺寸倍率") + parser.add_argument("--list", action="store_true") + args = parser.parse_args() + if args.list: + print("\n".join(names)) + return 0 + only = [s.strip() for s in args.only.split(",") if s.strip()] + unknown = [s for s in only if s not in names] + if unknown: + parser.error(f"未知图名 {unknown}") + entries = build_figures(only or None, args.scale) + manifest = {"generator": "scripts/make_figures.py", + "command": "uv run python scripts/make_figures.py" + + (f" --only {args.only}" if args.only else ""), + "palette": C, "fonts": {"dir": "docs/paper/fonts", "map": FONTS}, + "figures": entries} + path = OUT_DIR / "manifest.json" + path.write_text(json.dumps(manifest, ensure_ascii=False, indent=2) + "\n", + encoding="utf-8") + print(f"[fig] manifest → {path.relative_to(ROOT)}({len(entries)} 张)") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())