
    #mJj{                      d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ ddlmZmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m Z  ddl!m"Z"m#Z# ddl$m%Z& ddl$m'Z( ddl$m)Z* ddl$mZ+ ddl,mZ- ddl,mZ. ddl/mZ0 ddl/mZ1 ddl2mZ3 ddl2mZ4 ddl5mZ6 ddl7m)Z8 ddl7mZ9 ddl:m;Z< ddl=m>Z> ddl?m@ZA ddl?mBZC ddlDmEZD ddlDmFZF ddlGmHZH ddlIm@ZJ ddlImKZL ddlImMZI ddlImNZO ddlPmQZR ddlPmZS ddlTmZU ddlTmZV ddlWmZX ddlWmZY ddlZmZ[ ddlZmZ\ ddl]mZ^ ddl]mZ_ ddl`mZa ddl`mZb ddlcmZd ddlcmZe ddlfmZg ddlfmZh ddlimZj ddlimZk ddllmZm ddllmZn ddlomZp ddlomZq ddlrmZs ddlrmZt ddlumZv ddlumZw ddlxmZy ddlxmZz ddl{mZ| ddl{mZ} ddl~mZ dd l~mZ ddl~mZ ddl~mZ ddlmQZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmQZ ddlmZ ddlmZ ddlmZ ddlmQZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmQZ ddlmZ dd!lmZ ddlmQZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd"lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd#lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl mZ ddl mZ ddlmZ ddlmZ ddlmZ ddlmZ dd$l	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm@Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmQZ ddlmZ ddlmZ ddlmZ ddlmZ  ddl!mZ" ddl!mZ# dd%l$m%Z& ddl$mZ' ddl(mZ) ddl(mZ* ddl+mZ, ddl+mZ- ddl.mZ/ ddl.mZ0 ddl1mZ2 ddl1mZ3 ddl4mZ5 ddl4mZ6 ddl7mZ8 ddl7mZ9 ddl:mZ; ddl:mZ< ddl=mZ> ddl=mZ? ddl@mMZ@ ddlAmMZB ddlCmZD ddlCmZE ddlFmMZM dd&lGmHZHmMZG ddlImZJ ddlImZK dd'lLmMZN ddlLmZO ddlPmQZQ ddlPmZR ddlSmQZT ddlSmZU ddlVmQZW ddlVmZX ddlYmZZ ddlYmZ[ ddl\mZ] ddl\mZ^ ddl_mZ` ddl_mZa ddlbmZc ddlbmZd ddlemZf ddlemZg ddlhmQZi ddlhmZj dd(lkmlZm ddlkmZn ddlomQZp ddlomZq ddlrmZs ddlrmZt ddlumQZv ddlumZw ddlxmQZy ddlxmZz ddl{mQZ| ddl{mZ} ddl~mZ ddl~mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd)lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd*lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ	 ddl
mZ ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  ddlmZ! ddl"mZ# ddl"mZ$ ddl%mZ& ddl%mZ' ddl(mZ) ddl(mZ* ddl+mZ, ddl+mZ- ddl.mZ/ ddl.mZ0 ddl1mZ2 ddl1mZ3 ddl4mZ5 ddl4mZ6 ddl7mZ8 ddl7mZ9 ddl:mZ; ddl:mZ< ddl=mZ> ddl=mZ? ddl@mZA ddl@mZB ddlCmZD ddlCmZE ddlFmZG ddlFmZH ddlImZJ ddlImZK ddlLmZM ddlLmZN ddlOmZP ddlOmZQ ddlRmZS ddlRmZT ddlUmZV ddlUmZW ddlXmZY ddlXmZZ ddl[mZ\ ddl[mZ] ddl^mZ_ ddl^mZ` ddlamZb ddlamZc ddldmZe ddldmZf ddlgmZh ddlgmZi ddljmZk ddljmZl ddlmmZn ddlmmZo ddlpmZq ddlpmZr ddlsmZt ddlsmZu ddlvmZw ddlvmZx ddlymZz ddlymZ{ ddl|mZ} ddl|mZ~ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd+lmZ ddlmZ ddlmQZ ddlmZ ddlmQZ ddlmZ ddlmQZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmMZ ddlmMZ ddlm@Z ddlmMZ dd,lmZ ddlm@Z ddlmKZ ddlmMZ dd-lmŐZ dd.lǐmȐZ dd/lǐmʐZ ddlmZ ddlm)Z dd0l͐mϐZ dd1l͐mѐZ dd2l͐mӐZ ddlmZ  e
e֫      j                         j                  d3   Zِed4z  Zڐed5z  Zd6g d7Zd6g d7Zh d8Zg d9ZdVd:ZdVd;ZdVd<ZdVd=ZdVd>ZdVd?ZdWd@ZdXdAZdYdBZdZdCZg dDZdEZdFZdGZdZd3Zg dHZg dIZd[dJZd\dKZd]dLZd^dMZd_dNZd`dOZdadPZdbdQZdcdRZdddSZdedTZedUk(  r	 e        yy)fz.Build the current browser prototype asset set.    )annotationsN)defaultdict)Path)classify_payload)decode_filedecompress_cnsindices_to_rgbparse_image)extract_events)extract_manifest)extract_selectors)selector_html)export_battle_backgrounds)build_summary)write_outputs)export_battle_event_candidates)export_map_chunksexport_maps)candidate_index)coverage_rows)load_reviews)extract_candidates)read_sections)markdown)render_galleries)render_gallery_from_counter)usage_by_tileset_from_map_data)	load_maps)index_markdown)	summarize)write_map_pages)
build_rows)annotate_map_exit_trial_routes)%annotate_save_selector_frontier_risks)build_audit)build_matrix)transition_records)parse_imports)run_scan)structured_linksr    )expand_selector_references)scan_operations)	scan_refs)build_alias_groups)build_links)summary)write_tileset_pages)load)validate_capacities)transition_index)validate_maps)write_gap_outputs   extract_fldoutparked)statussamples>   map1_01amap1_02bmap3_09a)tile_class_gap_galleriestile_pair_class_gapsmap_tile_class_gaps
tile_usagetransition_review_gapstransition_review_patchesc                 6    ddg ddddgdddg dddg g dddd	d		S )
Nr:   r    F5savedata analysis parked; see docs/SAVEDATA_PARKED.mdzdocs/SAVEDATA_PARKED.md)r;   source)	expectedSaveSizeknownSemanticByteCountknownSemanticFieldsknownFieldCountunknownByteCountunknownVaryingByteCountunknownVaryingRangesunsupportedOriginalSystemsequipmentEvidence)	r;   sampleCountsampleSelectorscurrentFrontierSelectorcurrentFrontierSampleCoveredroutePairSampleCoveredremainingProofspromotionStatussemanticCoverage r[       -/home/exedev/hwanse/tools/build_web_assets.pyparked_savedata_sample_coverager^     sM    #%(-"'ST# !&'#%  !'($&*,,4@Y!Z

 r\   c                 8    ddg dddg dg i t               d   g ddS )Nr:   r   rG   rZ   )r;   rS   rT   currentSelector currentSelectorPublicSampleCountroutePairPublicSampleCountrouteCriticalOffsets!selectorDistinguishingOffsetCountselectorDistinguishingOffsetsclosestPublicSourceTargetPairrZ   r<   rY   )r^   r[   r\   r]   parked_savedata_sample_deltasrg     s<    ,-&' "-.)+)+;=>PQ# r\   c            
         dddddg g g g d	S )Nr:   r   )	r;   rK   unknownVaryingRangeCountrO   routeCriticalOffsetCount
bucketRowsrouteControlRowsinventoryEquipmentRowspairDecodeRowsr[   r[   r\   r]   &parked_savedata_offset_triage_clustersro   $  s'    "#$%#$$%"$
 
r\   c                     dg ddddddS )Nr:   r   FT)r;   rowsprovidedCapturePairCountvalidCapturePairCountmissingCapturePairCountmanifestFoundnonPromotingr[   r[   r\   r]   %parked_savedata_targeted_delta_intakerw   2  s!    $%!"#$ r\   c                     dddddS )Nr:   TF)r;   syntheticDiagnosticExcludedrouteProofCandidaterealRouteProofCandidater[   r[   r\   r]   (parked_synthetic_savedata_selector_prober|   >  s    '+$#(	 r\   c                     i ddddddddddddd	dd
ddddddddddddiddddddddi dddddddddddddddid dddd!d"g d#d$gd%dd&dd'dd(dgd)d*gd+d*gd,dd-diS ).Nr;   r:   candidateCountr   realCandidateCountvalidRealCandidateCountvalidRealUniqueSha256CountarchiveCandidateCountarchiveSkippedCountworkspaceDatFileCount!workspaceExpectedSizeDatFileCountworkspaceZipDatMemberCount'workspaceHiddenExpectedSizeDatFileCountvalidRealCandidatesAllBlockedT#validRealCandidateBlockReasonCountszsavedata-parkedr7   r`   rG   currentSelectorRealSaveCountselectedPointerRealSaveCountroutePairRealSaveCountroutePromotionRealSaveCount
proofFoundFrouteEvidenceProofFoundrealSelector20SaveFound$routeEvidenceRejectionClassification%requiredSelectorBytePairRealSaveCountrequiredByteCoveragecapturedRoutePairGap)sourceOnlyCounttargetOnlyCountroutePairCountpublicSampleSelectorspublicSearchNotesrH   publicCurrentFrontierCoveredpublicRoutePairCoveredry   failedSavedataGateIdsmissingProofszsavedata analysis parkedmissingEvidenceevidenceRefCountrY   r[   r[   r\   r]   !parked_real_savedata_evidence_gapr   G  s   $($!$ 	a$ 	"1	$
 	%a$ 	 $ 	q$ 	 $ 	,Q$ 	%a$ 	21$ 	($ 	.0A1/E$ 	2$ 	'$  	'!$" 	!!#$$ 	&q%$& 	e'$( 	"5)$* 	"5+$, 	/0A-$. 	0/$0 	!H! L1$2 	A!_` a3$4 	 5$6 	UV7$8 	'9$: 	!%;$< 	&t=$> 	 "3!4?$@ 	45A$B 	67C$D 	AE$F 	8G$ $r\   c                2    t        j                  | dd      S )NF,:ensure_ascii
separators)jsondumps)datas    r]   js_jsonr   o  s    ::d:FFr\   c                 ~    t        j                  t              } | j                  ddd       | j	                         S )N)descriptionz--keep-review-previews
store_truezkeep optional review preview/detail directories under out/. Default build prunes them after writing metadata so the VM disk stays small.)actionhelp)argparseArgumentParser__doc__add_argument
parse_args)parsers    r]   r   r   s  sB    $$9F
 [	   r\   c                    g }t         D ]>  }| |z  }|j                         st        j                  |       |j	                  |       @ |S N)OPTIONAL_REVIEW_OUTPUT_DIRSexistsshutilrmtreeappend)out_dirremoveddirnamepaths       r]   prune_optional_review_outputsr     sK    G.   {{}dw  Nr\   c                   | j                  d      | j                  d      xs g | j                  d      xs g | j                  d      xs g D cg c]W  }|j                  d      rD|j                  d      r3|j                  d      |j                  d      |j                  d      dY c}d	}|d
z  j                  dt        |      z   dz   d       y c c}w )NstartMapreachableFromStart'saveSelectorCandidateReachableFromStart#saveSelectorCandidateReachableEdgesrI   targetpromotionRisk)rI   r   r   )r   r   r   r   zplayable_progress_runtime.jsz"window.HWANSE_PLAYABLE_PROGRESS = ;
utf-8encoding)get
write_textr   )r0   r   edgeruntimes       r]   write_playable_progress_runtimer     s    KK
+%kk*>?E23:;;?h3i3omo  $IJPb0
 xx!dhhx&8 ((8,((8,!%/!:0
	G --99,
'
	
	 	 : 0
s   AC
)z	title.cnsz
map_a1.cnsz
map_a2.cnscara_at1.cnscara_sm1.cnscara_rs1.cnszbtl_etc.cnszbtl_efc.cnsz
btl_at.cnsz
btl_sm.cnsz
btl_rs.cnsz
window.cnszicon.cnsz	frame.cnsznum.cnszitem.cnsz
status.cnszface_01.cns0   @      ))Atahor   )Smashur   )Rinshanr   ))downr   r   )leftr   r   )upr7   r   )rightr7   r   c                    t         j                  |       D cg c]  }t        |z   }}|D cg c]  }|j                         r| }}|r'dj	                  d |D              }t        d| d      |S c c}w c c}w )N
c              3  &   K   | ]	  }d |   yw)z  Nr[   .0r   s     r]   	<genexpr>z"require_sources.<locals>.<genexpr>  s     ;4Rv;;s   zmissing extracted FLD entries:
z)
run `python3 tools/extract_fld.py` first)dictfromkeysEXTRACT_FLDr   join
SystemExit)namesnamepathsr   missingjoineds         r]   require_sourcesr     s    ,0MM%,@AD[4AEA %;T[[]t;G;;7;;.h 77
 	

 L B;s   A5A:A:c                    	 | j                         d d }t        |      dk  s|d d dk7  s|dd dk7  ry |d   S # t        $ r Y y w xY w)N      s   PNG

      s   IHDR   )
read_bytesFileNotFoundErrorlen)r   headers     r]   png_color_typer     se    "3B' 6{R6"1:)==2RYAY":	  s   9 	AAc                    | j                   }|j                  d      ryt        |      dk(  xr/ |j                  d      xr |d   j                         xr |d   dv S )N)cara_btl_zbossT   map_   r   >   23)stem
startswithr   isalpha)srcr  s     r]   cns_uses_palette0_transparencyr
    s[    88D56 t9>edoof5e$q'//:KePTUVPW[ePeer\   c                4   |j                         rt        j                  |       t        |       }|xr t	        |      dk7  }|j                         r8|j                         j                  | j                         j                  k\  r|sy t        | ||       y )Nr  )transparent_palette0)	is_dirr   r   r
  r   r   statst_mtimer   )r	  dstr  needs_alpha_refreshs       r]   decode_if_staler    sr    
zz|c9#>.K>#3F!3K
zz|
++sxxz/B/BBK^S/CDr\   c                   g }t         D ]  \  }}g }t        D ]  \  }}}g }t        t              D ]@  }	||	z   t        z  }
|t
        z  }|j                  d| d|
 d| dt         dt
         d       B |j                  d| dd	j                  |       d
        |j                  d| d| dt         dt
         dd	j                  |       d        | j                  dt         dt
         dd	j                  |       dd       y)zLegacy review output kept for one-off local use.

    Active pages use field_character_review/cns_rect_review instead. This
    writer renders directly from CNS canvases and is no longer called by the
    normal asset build.
    z/<canvas class="frame" data-cns="../extract_fld/z
" data-x="z
" data-y="z	" width="z
" height="z"></canvas>z%<div class="row"><span class="label">z</span>rG   z</div>z<section><h2>z</h2><p><code>z</code> sliced as xzP, 5 direction frames per direction. Frame 0 is idle; moving uses frames 1-4.</p>z
</section>a  <!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Character Sprite Frames</title>
  <style>
    :root { color-scheme: dark; font-family: system-ui, sans-serif; background: #111; color: #eee; }
    body { margin: 0; padding: 24px; }
    h1 { margin: 0 0 8px; font-size: 24px; }
    p { color: #bbb; margin: 0 0 14px; }
    section { margin: 22px 0; }
    h2 { margin: 0 0 8px; font-size: 18px; }
    .row { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
    .label { width: 44px; color: #bbb; font: 13px ui-monospace, monospace; }
    .frame { display: inline-block; width: zpx; height: a$  px; image-rendering: pixelated; background-repeat: no-repeat; background-color: #252525; border: 1px solid #444; }
    code { color: #9bd4ff; }
  </style>
</head>
<body>
  <h1>Character Sprite Frames</h1>
  <p>Runtime walking uses frame 0 only while standing and skips it while moving.</p>
  a  
  <script src="../web/engine/cns/renderer.js"></script>
  <script>
    (async () => {
      const cache = new Map();
      for (const canvas of document.querySelectorAll(".frame")) {
        let image = cache.get(canvas.dataset.cns);
        if (!image) {
          image = await window.HWANSE_CNS_RENDERER.loadImageCanvas(canvas.dataset.cns);
          cache.set(canvas.dataset.cns, image);
        }
        const ctx = canvas.getContext("2d");
        ctx.imageSmoothingEnabled = false;
        ctx.drawImage(image, Number(canvas.dataset.x), Number(canvas.dataset.y), canvas.width, canvas.height, 0, 0, canvas.width, canvas.height);
      }
    })();
  </script>
</body>
</html>
r   r   N)	CHARACTER_SPRITESCHARACTER_DIRECTIONSrangeCHARACTER_WALK_FRAMESCHARACTER_FRAME_WIDTHCHARACTER_FRAME_HEIGHTr   r   r   )r  cardstitlecnsrq   	directionrowcolframesframer  ys               r]   write_character_sprite_reviewr$    s    E' 

s#7 	IsCF45 5[$9900003u 5 cA3 /34J?U>VVac KK''0k776?#	" 	' u./D.EQG]F^ _]wwt}o	
'
6 NN	7 8M6M N)* + WWU^ 1*	V Y  -r\   c                   t        | j                               }t        |      \  }}}}t        ||||      t	        d d       }dfd}g }t
        D ]  \  }	}
}g }t        t              D ]  }||z   t        z  }|
t        z  }t        }t        }d}d}d}t        ||t        z         D ]h  }t        ||t        z         D ]P  } |||      |k(  r|dz  }t        |||z
        }t        |||z
        }t        |||z
        }t        |||z
        }R j |j                  |||t        t        ||dk(  rd n||||gd        |j                  |	|
||d        g }t        |t        z        D ]  }
t        dt        z        D ]r  }|t        z  }|
t        z  }d}t        ||t        z         D ],  }t        ||t        z         D ]  } |||      |k7  s|dz  } . |s\|j                  |
||||d	       t  | j                  |t        |      t        t        t        t        t        t        t         t                    ||d
S )N   c                <    |z  | z   dz  }t        ||dz          S )Nr&  )tuple)r  r#  offsetrgbwidths      r]   pixelz'character_frame_metadata.<locals>.pixelK  s+    e)a-1$S&1*-..r\   r   r7   )indexsourceXsourceYr+  heightopaquePixelsbbox)r   r  r   r!  
   )r  r   r/  r0  r2  )filer+  r1  backgroundRgb
frameWidthframeHeightwalkFramesPerDirection	idleFramemovingFrames
directionsspecialFrames)r  intr#  r>  returnztuple[int, int, int])r   r   r
   r	   r(  r  r  r  r  r  minmaxr   r   listCHARACTER_IDLE_FRAMECHARACTER_FIRST_WALK_FRAME)r	  decodedr1  palettepixelsbppbgr,  r<  r  r  r   r!  r"  x0y0min_xmin_ymax_xmax_yopaquer#  r  special_framesr*  r+  s                           @@r]   character_frame_metadatarR  E  s   S^^-.G*5g*>'E67FC

=C	s2AwB/ J3 Y	301 	E+!66B--B)E*EEEF2r$::; /r2(=#=> /AQ{b( aKFq2v.Eq2v.Eq2v.Eq2v.E// MM.0 & &!%u1M #	4 	9SPVWX9Y< NV556 U&;;< 	C,,B--BF2r$::; $r2(=#=> $AQ{b(!$$ %%!!$*' 	& b+-"7)U#=?TUV ' r\   c                    t         D cg c]  \  }}t        t        |z         }}}| dz  j                  t	        j
                  |dd      dz   d       y c c}}w )Ncharacter_sprite_frames.jsonF   r   indentr   r   r   )r  rR  r   r   r   r   )r   _titler  recordss       r]   write_character_sprite_metadatarZ    sg     -FC 	!s!23G  --99

7q9D@ : 	s   Ac                    | D ch c],  }|j                  dg       D ]  }|j                  d      r| . }}}t        |      S c c}}w )NlinkedStrings.cns)r   endswithsorted)eventseventlinkedassetss       r]   linked_object_assetsrd    s^     ii4 ??6" 	F  &>s   1Ac            	         t        dD  ch c](  } t        j                  |       D ]  }|j                   * c}}       S c c}} w )N)z	boss*.cnszz*.cns)r_  r   globr   )patternr   s     r]   enemy_object_sprite_assetsrh    sP     3	
#((1	
  II	
	
 	
s   -A 
c                   t        t              }| D ]  }||d      j                  |        i }|j                         D ]z  \  }}|j	                  d        t        |D ch c]  }t        |d          c}      }|d   }|d   |d   |d   |d   t        |      |D 	cg c]  }	t        |	       c}	d	||<   | |S c c}w c c}	w )
Nmapc                    | d   S )NrecordVar[   )items    r]   <lambda>zmap_metadata.<locals>.<lambda>  s    d:&6 r\   )keytilesetsr   sceneId
sceneIdHexrl  )rq  rr  rl  rp  variantCounttilesetVariants)r   rB  r   itemssortr_  r(  r   )
manifestby_maprm  metadatar   rY  recordvariantsselectedvariants
             r]   map_metadatar~    s    $/$5F )tE{""4() H 
g677K5
!34KL1:	*"<0 , ,M=EF'WF
	
 O L  Gs   "B?
!Cc                 Δ  ) t               } t        j                  dd       t        dz  j	                         }t        |      }t        dz  j                         r,t        j                  t        dz  j                  d            ni }t        dz  j                         r,t        j                  t        dz  j                  d            ni }t        dz  j                         r,t        j                  t        dz  j                  d            ni }t        d	z  j                         r,t        j                  t        d	z  j                  d            ni }t        t        dz        }t        d
z  j                  t        j                  |dd      dz   d       t        dt        d
z          t        t              }t        |t               t        dt        dz          t!        t              }	t#        |	t               t        dt        dz          t%        t        dz  |      }
t'        |
t               t        dt        dz          t)        t        dz        }t+        |t               t        dt        dz          t-        t        dz        }t/        |t               t        dt        dz          t1        t        dz        }t        dz  j                  t        j                  |dd      dz   d       t        dz  j                  t3        |      d       t        dz  j                  dt5        |      z   dz   d       t        d t        dz          t7        |t        dz  !      }t9        |t               t        d"t        d#z          t;        t<              }t?        |t               t        d$t        d%z          tA        |      }tC        |t               t        d&t        d'z          tE        ||t        dz        }tG        |t               t        d(t        d)z          tI        |t<              }tK        |||      }tM        |t               t        d*t        d+z          tO        |d,-      }tQ        |      }tS        |      }tU        |t               tW        ||      }tY        |t               t        d.z  j                  t        j                  |dd/0      dz   d       t        d1z  j                  d2t5        |      z   dz   d       t[               }t]               }t_               }ta               }tc        |      }te        |t               tg        |||3      }ti        |t               tk        |      }tm        |t               to        |t<        d,      }tq        |      } ts        |      }!tu               }"tw        d4 t<        jy                  d5      D              }#|D $ch c]  }$|$d6   	 }%}$tw        t<        jy                  d7      D &ch c]  }&|&jz                   c}&|%D 'ch c]  }'|' d8	 c}'z        }(t}        |      })t        t              |%z  )|)j                         D ]'  }*)j                  |*j                  d9      xs g        ) |D ]'  }*)j                  |*j                  d9      xs g        ) t        j                  j                  d:      d;k(  r=t        g t        |#|!|"      D ]"  }+t        |+t        |+j                   d<z         $ nt        d=       t        t               t        t        |(      t        d>z  |        tw        )fd?|(D              },t        t        |,      t        d@z  t        dAz  |        t        t        t<              }-t        t        d>z        }.t        t        dBz  dCz        }/t        |/       tw        t<        jy                  dD            D &cg c]  }&t        |&       }0}&t        dEz  j                  t        j                  |0dd      dz   d       t        dFt        |0       dGt        dEz          t        dFt        |       dHt        d.z          t        dIz  j                  t        j                  |dd/0      dz   d       t        dFt        |       dJt        dIz          t        dKz  j                  t        j                  |dd      dz   d       t        dLz  j                  dMt5        |      z   dz   d       t        dNz  j                  dOt        j                  |!D 1ci c]/  }1t        |1      j                  dPt        |1      j                   d81 c}1dd/0      z   dz   d       t        |      }2t        dQz  j                  t        j                  |2dd      dz   d       t        dRz  j                  dSt5        |2      z   dz   d       t        t        dBz  dTz  t        |.|)            }3t        |3t               t        |.t        |.|)      |3      }4t        t        dBz  dUz  t        |2            }5t        |5|.       t        |5t               t        t        |2      |5t        |.      }6t        |6      }7t        |7t               t        |.|2|5dV|6|W      }8t        |8t               t        |8||||2      }9t        |9t               t        ||||9|3      }:t        |:t               t        |6|:X      }7t        |7t               t        |7t              };t        |||9||      }<t        |<t               t        ||9      }=t        |=t               t        |=      }>t        |>t               t        ||2|5      }?t        |?t               t        |||=      }@t        |@t               t        ||=      }At        |At               t        ||=      }Bt        |Bt               t        ||B      }Ct        |Ct               t        |      }Dt        |Dt               t        ||D      }Et        |Et               t        ||E      }Ft        |Ft               t        |||Ft        dz        }Gt        |Gt               t        dYt        dZz          t        ||2      }Ht        |Ht               t        d[t        d\z          t        ||H      }It        |It               t        d]t        d^z          t        t              }Jt	        |Jt               t        d_t        d`z          t        t              }Kt        |Kt               t        dat        dbz          t        t              }Lt        |Lt               t        dct        ddz          t        t              }Mt        |Mt               t        det        dfz          t        |F|H|I      }Nt        |Nt               t        dgt        dhz          t        |A|F|G|H|N|I||J      }Ot        |Ot               t        dit        djz          t        |I||      }Pt!        |Pt               t        dkt        dlz          t#        |I|-t              }Qt%        |||0      }Rt'        |R|Q|0t              }St)        |St               t        dmt        dnz          i }Tt        doz  j                         r,t        j                  t        doz  j                  d            }Tt        j                  t        dpz  j                  d            }Ut+        t-        |0|USTt                    }Vt/        |Vt               t        dqt        drz          t1        t        dz  t              }Wt3        |Wt               t        dst        dtz          t5        t        drz  t        dtz        }Xt7        |Xt               t        dut        dvz          t9        t              }Yt;        |Yt               t        dwt        dxz          t=        G|I      }Zt?        |Zt              }[t        dy|[        ddz}\tA        t              }]tC        |]t               t        d{t        d|z          tE        t              }^tG        |^t               t        d}t        d~z          tI        t              }_tK        |_t               t        dt        dz          tM        t              }`tO        |`t               t        dt        dz          |]j                  d      xs i }a`j                  d      xs i }b_j                  d      xs i }cLj                  d      xs i }daj                  d      xs i }eaj                  d      xs i }faj                  d      xs i }gaj                  d      xs i }haj                  d      xs i }iKj                  d      xs i }jaj                  d      xs i }kJj                  d      xs i }l^j                  d      xs i }m^j                  d      xs i }nMj                  d      xs i }o \d      }ptQ        t              }qtS        |qt               t        dt        dz          |qj                  d      xs i }r \d      }s |\d      }ttU        t              }utW        |ut               t        dt        dz          |uj                  d      xs i }v \d      }wtY        t              }xt[        |xt               t        dt        dz           |\d      }yt]        |      }zt_        |zt               ta        ||z|=||      }{tc        |{t               te        ||{      }|tg        ||t               t        dd       ti        |      }}tk        |}t               tm        |9B|=|3      }~to        |~t               tq        ||~|=      }ts        |t               tu        ||~|      }tw        |t               ty        |~|B      }t{        |t               t        dd       t}        ||||=|~d      }t        |t               t        ||      }t        |t               t        ||      }t        |t               t        ||      }t        |t               t        |||=      }t        |t               t        dd       t        ||      }t        |t               t        ||      }t        |t               t        ||      }t        |t               t        |||=|B      }t        |t               t        ||=|B      }t        |t               t        ||      }t        |t               t        ||=      }t        |t               t        ||>|B      }t        |t               t        ||      }t        |t               t        ||=|B|      }t        |t               t        ||>|B|      }t        |t               t        ||||      }t        |t               t        ||      }t        |t               t        |||      }t        |t               t        ||      }t        |t               t        ||      }t        |t               t        |      }t        |t               t        |      }t        |t               t        |      }t        |t               t        |||      }t        |t               t        ||      }t        |t               t        ||||      }t        |t               t        ||||      }t        |t               t        dd       t        |      }t        |t               t        |||      }t        |t               t        ||      }t        |t               t        |      }t        |t               t        t              }t        |t               t        |      }t        |t               t        |A      }t        |t               t        ||||      }t        |t               t        dd       t               }t        ||      }t	        |t               t        |D      }t        |t               t        ||      }t        |t               t        ||      }t        |t               t               }t        |t               t        |||      }t        |t               t        ||      }t        |t               t!        |||8      }t#        |t               t%        ||8      }t'        |t               t)        |      }t+        |t               t-        |||      }t/        |t               t1        |||||      }t3        |t               t5        ||      }t7        |t               t9        |||||      }t;        |t               t=        ||      }t?        |t               tA        ||=F|      }tC        |t               tE        ||||      }tG        |t               t        dd       tI        |8|~       t        |8t               tK        |8|9|<|=|B|~||      }tM        |t               tO        |.|/||      }tQ        |t               tS        |.|      }tU        |t               t        dt        dz          tW        t        dz  ||      }tY        |t               t        dt        dz          t[        |.|5|2|      }t]        |t               t_        |.|2|5|      }ta        |t               tc        |8||.       t        |8t               te        |8t               tg               }ti        |t               t        dz  j                         rtk        t        j                  t        dz  j                  d            t        dz  j                         r,t        j                  t        dz  j                  d            ni       }tm        |t               i }t        dz  j                         s]t        dz  j                         sFt        dz  j                         s/t        dz  j                         st        dz  j                         rsto        t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni |?i       }tq        |t               ts        t        jy                  d            r!tu        t              }tw        |t               t        dz  j                         rty               }t{        |t               i }t        dz  j                         rKt}        t        j                  t        dz  j                  d            |||      }t        |t               i }rt        t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni |8|||0      }t        |t               t        |8|5|3fi dt        |.      d|4dd|d|ddddd|;ddt        |-      dQj                  ddū      dydOd|ddd}Ðt        |t               t        dd       t        dz  j                  t        |      d       t        dz  j                  t        j                  |dd      dz   d       t        dz  j                  t        |      d       t}        |      }t        dz  j                  t        j                  |dd      dz   d       t        dz  j                  dt5        |ī      z   dz   d       t        dz  j                  t        |      d       t        ||2||      }Őt        |t               t        |||2||ū      }Ɛt        |t               t        dd       t        |||ƫ      }ǐt        |t               t        |||      }Ȑt        |t               t        |||2||ի      }ɐt        |t               t        |֫      }ʐt        |t               t        |||||5|2      }ːt        |t               t        ||.|2||ū      }̐t        |t               t        |      }͐t        |t               t        ||0|.|ͫ      }ΐt        |t               t        ||.|      }ϐt        |t               t        ||.|      }Аt        |t               t        |.|2|5|:|8      }ѐt        |t               t        |:||5|||>|ȫ      }Ґt        |t               t        |:|2      }Ӑt        |t               t        ||2|:|      }Ԑt        |t               t        |      }Րt        |t               t        ||.|||2|ԫ      }֐t        |t               t        ||||2|8||:|ϫ      }אt        |t               t        |:|||ҫ      }ؐt        |t               t        ||׫      }ِt        |t               t        ||٫      }ڐt        |t               t        |||      }ېt        |t               t        |D|||٫      }ܐt        |t               t        |      }ݐt        |t               t        |||||||ݫ      }ސt        |t               t        |      }ߐt        |t               t        |||ܫ      }t        |t               t        dd       t        |||      }t        |t               t        ||      }t        |t               t        |      }t	        |t               t        t        |      }t        |t               t        |||      }t        |t               t        |||      }t        |t               t        |      }t        |t               t        |||      }t        |t               t!        ||      }t#        |t               t        dd       t%        ||=B||:      }t'        |t               t)        ||.|||      }t+        |t               t-        |||||||||||||?||||||ի      }t/        |t               t1        |||||      }t3        |t               t5        ||      }t7        |t               t9        ||      }t;        |t               t=        ||||||٫      }t?        |t               tA        ||||||||t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni       }tC        |t               tE        |      }tG        |t               tI        |||Ct        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni       }tK        |t               tM        ||      }tO        |t               tQ        ||t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni       }tS        |t               tA        t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni       }tC        |t               tE        |      }tG        |t               tU        ||||A      }tW        |t               tY        |||      }t[        |t               t]        ||      }t_        |t               ta        ||      }tc        |t               t        dz  j                         s]t        dz  j                         sFt        dz  j                         s/t        dz  j                         st        dz  j                         rsto        t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni |?      }tq        |t               ts        t        jy                  d            r&tu        t        |?||      }tw        |t               te        t        dz  j                         r,t        j                  t        dz  j                  d            ni @||t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz        }tg        |t               ti              }tk        |t               tm        |||      }to        |t               tq        |||      }ts        |t               tu               }tw               }ty        |C|t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni |      } t{        | t               t}        | 
      }t        |t               t        | |˫      }t        |t               t        ||| ٫
      }t        |t               tI        |||||Ct        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni       }tK        |t               tM        ||      }tO        |t               tQ        ||t        dz  j                         r,t        j                  t        dz  j                  d            ni t        dz  j                         r,t        j                  t        dz  j                  d            ni       }tS        |t               tU        ||A      }tW        |t               t               }t        |t               t        ||      }t        |t               t        ||      }t        |t               t        t        |      }t        |t               t        ||      }t        |t               t        ||||      }	t        |	t               t        |||||=      }
t        |
t               t        ||||      }t        |t               t        g |5|?      }t        g |9~|=|:ȑ|ƑǑ|||ّ|ۑEFz{|| |||ϑ|||	||||
||ܑޑݑ@ߑڑ|̑|?|||||ґӑԑՑ֑|Б|i ddדddd˓dd d͓dΓd|d|dd|d|dd	d
|d}t        |t               t        |t        dz  j                         r-t        j                  t        dz  j                  d            ni        }t        |t               t        dt        dz          t        |8      }t        |t               t        |Ɛ||5|?      }t        |t               t        |8|5|2||      }t        |t               t        t        dBz  dz  |.      }t        dd       t        |t               t        dd       t        |.t        |.ī      |3      }4t        dd       t        |8|5|3fi dt        |.      d|4d|d|d|;d|d|dd|ddd|dt        |-      dQj                  ddū      dydOdϓdГdדd˓dѓdғdӓdؓdԓdՓd֓d d!|ȓd"ɓd#ʓd$Ǔd%d&d'd(d)d*d+d,|d-d|d.d/d0d1d2	d3d4d5d6d7
d8d9ܓd:ޓd;ݓd<@d=ߓd>d?d@dAdBdC| dDdEdFdGdHdIړdJdKdLdM}dNdOdPBdQ|<dRٓdSdT|dUdVdWۓdXdYDdZEd[Fd\d]d^zd_{d`|dadbdcdddedddfdgdhdi|dj|dkdl|dmdn|do|dp|dqdrddsdtdudvdwdx̓dydz͓d{Γd||>d}|?d~ddddddddddt        dz  j                         r-t        j                  t        dz  j                  d            nd dwdbdcdddedfdgdhdidjdkdldmdndodpdrdsdtdvd}Ðt        |t               t        ||? f|d}t        |t               t        |8|||t        dz  j                         r-t        j                  t        dz  j                  d            ni t        dz  j                         r-t        j                  t        dz  j                  d            ni t        dz  j                         r-t        j                  t        dz  j                  d            ni       }t        |t               t        dd       t        dz  j                  t        |.ī      d       t        dd       t        |/t               t        dd       t        |.|/      }t        dz  j                  t        j                  |dd      dz   d       t        |.|/      }t        dz  j                  t        j                  |dd/0      dz   d       t        |.|/      }t        |      }t        dz  j                  t        j                  |dd      dz   d       t        dz  j                  t        j                  |dd      dz   d       t        dz  j                  t        |      d       t        |.|/      }t        dz  j                  t        j                  |dd      dz   d       t        dz  j                  t        |      d       t        dz  }t        ||      }|dz  j                  t        ||      d       t        dd       t        |.|/      }t        dz  j                  t        j                  |dd/0      dz   d       |D cg c]v  }|d6   |d   |d   |d   |d   |d   |j                  dg       d d |j                  dg       d d |j                  d      r
d   d   nd d	x }}t        dz  j                  dt5        |      z   dz   d       t        dz  j                  t              d       t        dz  }t        ||      } |dz  j                  t        | |      d       g }!t        j                  j                  d:      d;k(  rt        dz  }"t        |"      }!t        dz  j                  t        |!|"      d       t        dz  }#tw        |.j                         D $ch c]/  }$|$j                  dë      xs $j                  dī      gd   1 c}$      }%t        |.      }&|%D ]!  }'t        |'&|'   #|' dŝz  d,       # nt        dz  j                  dd       t        dFt        |       dt        dKz          t        dFt        |-       dt        dz          t        dFQj                  ddū       dt        dz          t        dFt        |2       dt        dQz          t        dFt        |5       dt        dUz          t        dt        dQz          t        dFt        |       dt        dz          t        dFt        |!       dt        dNz          t        dt        |"       dҝ       t        dFt        ī       dt        dz          t        dFt        |.       dt        dz          t        dt        |4       d֝       t        dt        dCz          t        dt        dz          t        dt        dz          t        dt        dz          t        dt        dz          t        dFt               dܐ        t        dt        dz          t        dFt                dސ        t        dFt        !       dt        dz          | j                  rt        d       y t        t              }(|(r"t        ddj                  (              y y c c}$w c c}&w c c}'w c c}&w c c}1w c c}w c c}$w (  NT)parentsexist_okzHwanse2.exezKruntime_selected_pointer_patched_public_selector_2_0_active_order_poll.jsonr   r   zKruntime_selected_pointer_patched_public_selector_2_0_branch_state_poll.jsonzKruntime_selected_pointer_predecessor_direction_sweep_active_order_poll.jsonzSruntime_selected_pointer_predecessor_left_overrun_activation_active_order_poll.jsonzexe_imports.jsonFrU  rV  r   zwrote EXE import summary -> z wrote audio archive manifest -> zaudio_archive_manifest.htmlz wrote audio title provenance -> zaudio_title_provenance.html)exe_importszwrote DirectDraw flow -> zdirectdraw_flow.htmlzwrote runtime timing -> zruntime_timing.htmlzwrote runtime movement -> zruntime_movement.mdzinput_keymap.jsonzinput_keymap.mdzinput_keymap.jszwindow.HWANSE_INPUT_KEYMAP = r   zwrote original input keymap -> )exe_pathz wrote Korean text candidates -> zkorean_text_candidates.jsonzwrote CNS text candidates -> zcns_text_candidates.htmlzwrote text tables -> ztext_tables.jsonzwrote text routine callers -> ztext_routine_callers.jsonzwrote scene event text refs -> zscene_event_text_refs.jsonP   )
max_dwordszsave_scene_selectors.jsonr   r   zsave_scene_selectors.jsz%window.HWANSE_SAVE_SCENE_SELECTORS = )rw  c              3  4   K   | ]  }|j                     y wr   )r   r   s     r]   r   zmain.<locals>.<genexpr>2  s     Y$DIIYs   zmap_[a-z][123].cnsrj  zmap[0-9]*.cnsr]  	fieldMapsHWANSE_WRITE_LEGACY_PNG1z.pngzHskipped legacy decoded PNG generation; browser pages render CNS directlyzmaps.jsc              3  P   K   | ]  }t        |      j                  v r|  y wr   )r   r  )r   r   runtime_map_namess     r]   r   zmain.<locals>.<genexpr>D  s*       :??// 	 s   #&zmaps_runtime.jsmaps_runtime_chunksr   ztile_classes.jsonz*.cnszcns_payloads.jsonzwrote z  CNS payload classifications -> z save scene selectors -> zscene_manifest.jsonz scene records -> zscene_events.jsonzscene_events.jszwindow.HWANSE_SCENE_EVENTS = zobject_assets.jszwindow.HWANSE_OBJECT_ASSETS = z../extract_fld/zevent_transitions.jsonzevent_transitions.jsz"window.HWANSE_EVENT_TRANSITIONS = zmap_render_reviews.jsonztransition_reviews.jsonr>   )	start_maptransition_gap_rowssave_selector_scene_links)field_map_rootsz!wrote event handler text refs -> zevent_handler_text_refs.jsonz wrote event text source flow -> zevent_text_source_flow.htmlzwrote event dialogue blocks -> zevent_dialogue_blocks.htmlz+wrote dialogue candidate review summary -> z&dialogue_candidate_review_summary.htmlz/wrote event/object candidate review summary -> z*event_object_candidate_review_summary.jsonz-wrote save-point candidate review summary -> z(save_point_candidate_review_summary.jsonz6wrote transition-progress candidate review summary -> z1transition_progress_candidate_review_summary.jsonz#wrote event VM opcode semantics -> zevent_vm_opcode_semantics.htmlz wrote event VM semantics gap -> zevent_vm_semantics_gap.htmlzwrote save point candidates -> zsave_point_candidates.htmlz(wrote battle enemy sprite candidates -> zbattle_enemy_candidates.jsz%non_party_descriptor_asset_links.jsonrT  zwrote CNS frame assets -> zcns_frame_assets.jsonz!wrote CNS frame rect EXE scan -> zcns_frame_rect_exe_scan.jsonzwrote UI window review data -> zui_window_review_data.jszwrote CNS rect review data -> zcns_rect_review_data.jsz'wrote battle action handler context -> c                    t         | z  }|j                         r%t        j                  |j	                  d            S i S )Nr   r   )OUTr   r   loads	read_text)r   r   s     r]   load_out_jsonzmain.<locals>.load_out_jsonS  s3    Tz?C{{}tzz$..'.:;TRTTr\   z'wrote menu candidate review summary -> z"menu_candidate_review_summary.htmlz-wrote completion candidate review summary -> z(completion_candidate_review_summary.htmlz+wrote movement candidate review summary -> z&movement_candidate_review_summary.htmlz)wrote mobile browser controls summary -> z$mobile_browser_controls_summary.jsonmenuscontrolsmovement	savePointr;   skill	equipmentshoppartyeventObjectprogressdialogueroutedeep
transitionzhome_landing_browser_smoke.jsonz%wrote route guide browser summary -> z route_guide_browser_summary.json
routeGuidez$runtime_music_cue_browser_smoke.jsonz#title_menu_sound_browser_smoke.jsonz%wrote title start browser summary -> z title_start_browser_summary.json
titleStartzlegacy_hwanedit_editor_gap.jsonz)wrote candidate browser smoke summary -> z$candidate_browser_smoke_summary.htmlzbattle_analysis_summary.jsonz'wrote event/object branch-state reports)flushz+wrote save-selector frontier branch reportsi   )context_windowz,wrote save-selector writer/gate path reportsz$wrote save-selector opcode24 reportsz3wrote save-selector object/selection-buffer reportsz(wrote save-selector state source reportsz(wrote original collision route audit -> z#original_collision_route_audit.htmlz#wrote map1_01a edge trigger gap -> zmap1_01a_edge_trigger_gap.mdz;runtime_selected_pointer_source_exit_branch_state_poll.jsonzJruntime_selected_pointer_source_exit_branch_state_load_confirmed_poll.jsonz@runtime_selected_pointer_source_savedata_load_variants_poll.jsonzBruntime_selected_pointer_source_savedata_load_coordinate_poll.jsonzBruntime_selected_pointer_source_exit_adaptive_coordinate_poll.jsonzCruntime_selected_pointer_source_exit_adaptive_trail_start_poll.jsonz/runtime_selected_pointer_predecessor_*poll.jsonz$runtime_route_watch_values_poll.jsonzruntime_memory_snapshot.jsonzruntime_input_path_probe.jsonzruntime_key_sequence_probe.json	map_countmap_render_gap_rowsruntime_trace_feasibilityruntime_timingruntime_movementoriginal_collision_route_auditedge_trigger_gaptile_hotspot_pattern_contrast strict_event_tile_signature_scan!transition_review_shortlist_auditruntime_title_start_contextbattle_background_countbattle_candidate_countr~   r   event_battle_gap_auditevent_vm_semantics_gapsavedata_sample_deltastarget_alias_state_effectstarget_alias_bridges%opcode24_runtime_enabled_block_writesz0wrote route blocker and completion audit reportszscene_events_summary.mdz scene_coordinate_candidates.jsonzscene_dispatch_summary.mdzscene_links.jsonzscene_links.jszwindow.HWANSE_SCENE_LINKS = zscene_links_summary.mdz;wrote transition extraction and map-exit coordinate reports)save_scene_selectorsscene_eventsevent_transitionsscene_manifestmap_exit_candidates)r  z4wrote map1_01a hotspot and predecessor-state reportsz8wrote save-selector gate base and opcode20 setup reportsz7runtime_selected_pointer_predecessor_progress_poll.jsonz>runtime_selected_pointer_predecessor_direction_sweep_poll.jsonzKruntime_selected_pointer_predecessor_direction_sweep_branch_state_poll.jsonzSruntime_selected_pointer_predecessor_left_overrun_activation_branch_state_poll.jsonzHruntime_selected_pointer_predecessor_nearest_exit_branch_state_poll.jsonzKruntime_selected_pointer_predecessor_reciprocal_exit_branch_state_poll.jsonzFruntime_selected_pointer_predecessor_coordinate_branch_state_poll.jsonzGruntime_selected_pointer_predecessor_trail_start_branch_state_poll.jsonzNruntime_selected_pointer_predecessor_trail_left_overrun_branch_state_poll.jsonzDruntime_selected_pointer_predecessor_highfreq_branch_state_poll.json)&predecessor_highfreq_branch_state_pollz2runtime_predecessor_field_entry_sequence_scan.jsonz/runtime_predecessor_coordinate_source_scan.json)frontier_reader_branch_contextdata_descriptor_opcode_mapdispatch_table_contextfield_entry_sequence_scancoordinate_source_scan)r  $predecessor_fill_execution_order_gap'predecessor_fill_site_execution_contextzTruntime_selected_pointer_patched_public_selector_2_0_input_path_case_alias_poll.jsonz1runtime_patched_selector_exit_candidate_poll.jsonz1runtime_patched_selector_left_stability_poll.jsonz9runtime_patched_selector_left_stability_recheck_poll.jsonz4runtime_patched_selector_left_active_order_poll.jsonz"runtime_selected_pointer_poll.jsonz*runtime_selected_pointer_prelude_poll.jsonz'runtime_selected_pointer_long_poll.jsonz'runtime_selected_pointer_late_poll.jsonz0runtime_selected_pointer_savedata_load_poll.jsonz:runtime_selected_pointer_multislot_savedata_load_poll.jsonzEruntime_selected_pointer_multislot_savedata_load_case_alias_poll.jsonzPruntime_selected_pointer_multislot_savedata_load_input_path_case_alias_poll.jsonzLruntime_selected_pointer_predecessor_left_overrun_activation_sweep_poll.jsonzOruntime_selected_pointer_synthetic_selector_2_0_input_path_case_alias_poll.jsonz=runtime_save_file_io_strace_attach_load_candidates_probe.jsonzHruntime_save_file_io_strace_attach_load_candidates_case_alias_probe.json)route_pair_entry_execution_gapedge_trigger_gap_summaryhotspot_gap_summarytile_hotspot_pattern_summary#strict_event_tile_signature_summary$strict_hotspot_review_matrix_summary%strict_source_hotspot_context_summary0runtime_source_save_load_variant_context_summary&frontier_reader_branch_context_summaryfrontier_payload_shape_summary,predecessor_fill_execution_order_gap_summary)predecessor_fill_opcode10_context_summary)predecessor_descriptor_bridge_gap_summary/predecessor_fill_site_execution_context_summarymerge_execution_gap_summarymerge_runtime_context_summarymerge_closure_context_summaryexit_target_ranking_summary!runtime_trace_feasibility_summaryzsavedata_slot_scan.jsonzwrote route promotion gate -> zroute_promotion_gate.htmlzmap_layout_reviews.jsonzloaded map layout reviewszwrote map layout review outputsz*calculated map render review coverage rowsroute_promotion_gatestrict_source_hotspot_contextmap1_resource_ref_scanevent_shape_scanmap1_hotspot_gapstrict_hotspot_review_matrixstrict_event_source_coveragerecord_pattern_contraststrict_target_link_gapscene_record_cluster_contextentry_contextselector_bridge_refsmanifest_point_scanroot_point_scanmap1_exit_variant_scanmap1_exit_byte_coordinate_scanmap1_exit_cns_payload_scanmap1_exit_coordinate_contextbranch_gate_consistencybranch_selector_equationwriter_chaindispatch_stop_contextgate_offset_sourcesgate_offset_patternsgate_base_candidatesgate_base_proof_gapgate_sample_valuesreal_savedata_evidence_gapgate_pass_matrixopcode20_object_base_candidatesopcode20_order_spaceopcode20_context_f2_sourcesopcode20_slot_sources opcode20_slot_descriptor_writersopcode20_descriptor_scriptsopcode20_sample_order_effectsopcode20_runtime_materializersopcode20_nested_base_modessecondary_reset_scopesecondary_global_reset_gapsecondary_block_writesruntime_selector_byte_writespost_gate_reset_candidates	merge_gapmerge_bridge_matrixselected_pointer_opcode_pathsglobal_selected_pointer_pathsselected_pointer_usageselected_root_execution_gapr  current_writer_pathsopcode08_activation_windowsopcode08_unreadable_producersopcode09_pointer_collisions"secondary_route_overlap_candidatespredecessor_state_effectactive_flag_effectactive_flag_sourcesselection_stateselection_writersbranch_pathsstream_tracesselector_xrefspredecessor_persistence_gapselection_buffer20_provenancesecondary_fill_rootsinherited_state_candidatescurrent_state_sourcespredecessor_tail_reset&predecessor_branch_state_execution_gapbranch_statebranch_state_writersbranch_state_dispatchsecondary_state_sourcesbranch_state_opcode_overlap+event_object_branch_state_stream_candidates)event_object_branch_state_candidate_links'event_object_branch_state_block_contextpredecessor_route_orderselector_set_decompositionselector_recomposition_latticeaddress_predecessor_contextmapset_aliasesroute_root_ref_contextpredecessor_bridge_refsreverse_reuse_contextmerge_execution_gapmerge_runtime_contextmerge_closure_contextr  !predecessor_fill_opcode10_context!predecessor_descriptor_bridge_gapr  wrapper_execution_gapopcode24_globalsopcode24_mode1_source_writesopcode24_mode1_runtime_contextopcode24_mode1_default_effectopcode24_payload_tableopcode24_current_root_modeswrapper_descriptor_contextscene_payload_contextscene_list_contextr  frontier_payload_shape_contextscene_record_sequencescene_adjacency_indexleaf_table_contextleaf_index_spaceleaf_table_global_contextroute_pair_descriptor_contextopcode2c_route_pair_contextopcode07_indexed_pointersobject61_stream_operandscontext58_consumerscurrent_root_frontier_pathsselection_buffer_basesruntime_trace_execution_probez"runtime_trace_execution_probe.jsonlegacy_hwanedit_editor_gapmobile_browser_smoke candidate_movement_browser_smoke#save_point_candidate_review_summary#candidate_status_menu_browser_smoke"candidate_skill_menu_browser_smoke&candidate_equipment_menu_browser_smoke!candidate_shop_menu_browser_smoke"candidate_party_join_browser_smoke%event_object_candidate_review_summary candidate_progress_browser_smoke)candidate_dialogue_progress_browser_smoke&candidate_route_progress_browser_smoke"candidate_deep_route_browser_smoke,transition_progress_candidate_review_summaryreview_surface_smokeroute_guide_smokeruntime_music_cue_smoketitle_menu_sound_smoketitle_start_smoke)r  r  r1  r-  runtime_save_path_contextr  r  r  r  r  r5  )runtime_patched_selector_followup_contextz1strict_source_hotspot_external_review_packet.jsonz+route_promotion_external_proof_handoff.json)real_savedata_gapr  savedata_slot_scan reciprocal_transition_candidatesr  r  ,strict_source_hotspot_external_review_packet&route_promotion_external_proof_handoffz;wrote save-selector frontier and opcode20 proof-gap reportszmap_tileset_candidates.mdz"wrote map tileset candidate reportzwrote tile class outputsztile_class_coverage.jsonzcollision_fallback_delta.jsonztile_class_gaps.jsonztile_class_gap_summary.jsonztile_class_gaps.mdztile_pair_class_gaps.jsonztile_pair_class_gaps.mdrA   zindex.mdz%wrote tile class and pair gap reportszmap_tile_class_gaps.jsontilecountfallbackKindfallbackPassfallbackBlock
componentsr  pairsr  r<   )	rj  rh  ri  rj  rk  rl  rm  rn  samplezmap_tile_class_gap_index.jsz)window.HWANSE_MAP_TILE_CLASS_GAP_INDEX = zmap_tile_class_gaps.mdrB   r@   ztile_class_gap_galleries.mdrC   layerTilesetstilesetz
_usage.pngztLegacy PNG tile-class gap galleries are disabled. Use map_review.html and map_occlusion.html for CNS-backed review.
z scene event records -> z battle background records -> zbattle_backgrounds.jsz# battle event candidate records -> zbattle_event_candidates.jsz  event transition candidates -> z transition reviews -> zwrote event transition data -> z' scene coordinate candidate records -> z object asset refs -> zindexed z9 enemy/object sprite CNS assets for browser CNS renderingz scene link sets -> z$ map tileset candidate summaries -> zcalculated z  map render review coverage rowszwrote tile classes -> zwrote tile class coverage -> z"wrote collision fallback delta -> zwrote tile class gaps -> zwrote tile pair class gaps -> z tile pair class gap pages -> zwrote map tile class gaps -> z map tile class gap pages -> z tile class gap galleries -> z/kept optional review preview/detail directoriesz3pruned optional review preview/detail directories: z, )r   strr?  r   (  r   r  mkdirROOTr   r   r   r   r  r  r(   r   r   print$build_audio_archive_manifest_summary$write_audio_archive_manifest_outputs$build_audio_title_provenance_summary$write_audio_title_provenance_outputsbuild_directdraw_flow_summarywrite_directdraw_flow_outputsbuild_runtime_timing_summarywrite_runtime_timing_outputsbuild_runtime_movement_summarywrite_runtime_movement_outputsbuild_input_keymap_summaryinput_keymap_markdownr   #build_korean_text_candidate_summary#write_korean_text_candidate_outputs build_cns_text_candidate_summaryr    write_cns_text_candidate_outputsbuild_text_table_summarywrite_text_table_outputs!build_text_routine_caller_summary!write_text_routine_caller_outputsr   "build_scene_event_text_ref_summary"write_scene_event_text_ref_outputsr   extract_save_scene_selectorsbuild_save_loader_trace_summarywrite_save_loader_trace_outputs'build_runtime_save_path_context_summary'write_runtime_save_path_context_outputsr^   rg   ro   rw   %build_scene_selector_progress_summary%write_scene_selector_progress_outputsexpand_save_selector_references%write_save_selector_reference_outputsbuild_save_selector_scene_links&write_save_selector_scene_link_outputsextract_coordinate_candidatesr~  rd  rh  r_  rf  r   r*   setRUNTIME_MAP_NAMESvaluesupdater   osenvironr   BASE_IMAGE_ASSETSr  r  rZ  r   r   r   r   load_tile_classesvalidate_tile_class_capacitiesr   r   r   r'   load_map_render_reviewsmap_render_review_indexwrite_map_render_review_outputsmap_render_review_coverage_rowsload_transition_reviewstransition_review_indexvalidate_transition_review_mapswrite_transition_review_outputs#write_transition_review_gap_outputs&build_transition_review_shortlist_rows)write_transition_review_shortlist_outputsbuild_playable_progress_summarywrite_playable_progress_outputs!build_save_selector_frontier_rows$write_save_selector_frontier_outputs#build_field_map_record_root_summary#write_field_map_record_root_outputs'build_transition_review_shortlist_auditbuild_save_selector_xref_rows write_save_selector_xref_outputs$build_save_selector_leaf_stream_rows'write_save_selector_leaf_stream_outputs1build_save_selector_scene_record_sequence_summary1write_save_selector_scene_record_sequence_outputs1build_save_selector_scene_adjacency_index_summary1write_save_selector_scene_adjacency_index_outputs7build_save_selector_runtime_selector_byte_write_summary7write_save_selector_runtime_selector_byte_write_outputs"build_script_handler_table_summary"write_script_handler_table_outputs%build_save_selector_stream_trace_rows(write_save_selector_stream_trace_outputs2build_save_selector_dispatch_table_context_summary2write_save_selector_dispatch_table_context_outputs(build_save_selector_branch_state_summary(write_save_selector_branch_state_outputs/build_save_selector_branch_state_writer_summary/write_save_selector_branch_state_writer_outputs1build_save_selector_branch_state_dispatch_summary1write_save_selector_branch_state_dispatch_outputs$build_event_handler_text_ref_summary$write_event_handler_text_ref_outputs$build_event_text_source_flow_summary$write_event_text_source_flow_outputs"build_event_dialogue_block_summary"write_event_dialogue_block_outputs'build_dialogue_candidate_review_summary'write_dialogue_candidate_review_outputs+build_event_object_candidate_review_summary+write_event_object_candidate_review_outputs)build_save_point_candidate_review_summary)write_save_point_candidate_review_outputs2build_transition_progress_candidate_review_summary2write_transition_progress_candidate_review_outputs'build_event_vm_opcode_semantics_summary'write_event_vm_opcode_semantics_outputs$build_event_vm_semantics_gap_summary$write_event_vm_semantics_gap_outputs"build_save_point_candidate_summary"write_save_point_candidate_outputsr   1build_original_battle_resource_descriptor_summary$build_battle_enemy_candidate_summary$write_battle_enemy_candidate_outputsbuild_cns_frame_asset_summarybuild_cns_frame_asset_rowswrite_cns_frame_asset_outputsrun_cns_frame_rect_exe_scan write_cns_frame_rect_exe_outputsbuild_ui_window_review_summarywrite_ui_window_review_outputsbuild_cns_rect_review_summarywrite_cns_rect_review_outputs+build_battle_action_handler_context_summary+write_battle_action_handler_context_outputs#build_menu_candidate_review_summary#write_menu_candidate_review_outputs)build_completion_candidate_review_summary)write_completion_candidate_review_outputs'build_movement_candidate_review_summary'write_movement_candidate_review_outputs%build_mobile_browser_controls_summary%write_mobile_browser_controls_outputs!build_route_guide_browser_summary!write_route_guide_browser_outputs!build_title_start_browser_summary!write_title_start_browser_outputs%build_candidate_browser_smoke_summary%write_candidate_browser_smoke_outputs8build_event_object_branch_state_stream_candidate_summary8write_event_object_branch_state_stream_candidate_outputs6build_event_object_branch_state_candidate_link_summary6write_event_object_branch_state_candidate_link_outputs5build_event_object_branch_state_block_context_summary5write_event_object_branch_state_block_context_outputs+build_save_selector_selection_state_summary+write_save_selector_selection_state_outputs(build_save_selector_frontier_branch_rows+write_save_selector_frontier_branch_outputs$build_save_selector_branch_path_rows'write_save_selector_branch_path_outputs.build_save_selector_scene_list_context_summary.write_save_selector_scene_list_context_outputs0build_save_selector_frontier_selection_flow_rows3write_save_selector_frontier_selection_flow_outputs$scan_save_selector_selection_writers,write_save_selector_selection_writer_outputs,build_save_selector_current_writer_path_rows/write_save_selector_current_writer_path_outputs9build_save_selector_selection_buffer20_provenance_summary9write_save_selector_selection_buffer20_provenance_outputs%build_save_selector_writer_chain_rows(write_save_selector_writer_chain_outputs"build_save_selector_gate_path_rows%write_save_selector_gate_path_outputs)build_save_selector_opcode24_payload_rows,write_save_selector_opcode24_payload_outputs2build_save_selector_opcode24_payload_table_summary2write_save_selector_opcode24_payload_table_outputs1build_save_selector_dispatch_stop_context_summary1write_save_selector_dispatch_stop_context_outputs.build_save_selector_leaf_table_context_summary.write_save_selector_leaf_table_context_outputs,build_save_selector_leaf_index_space_summary,write_save_selector_leaf_index_space_outputs5build_save_selector_leaf_table_global_context_summary5write_save_selector_leaf_table_global_context_outputs6build_save_selector_wrapper_descriptor_context_summary6write_save_selector_wrapper_descriptor_context_outputs9build_save_selector_route_pair_descriptor_context_summary9write_save_selector_route_pair_descriptor_context_outputs7build_save_selector_opcode2c_route_pair_context_summary7write_save_selector_opcode2c_route_pair_context_outputs6build_save_selector_data_descriptor_opcode_map_summary6write_save_selector_data_descriptor_opcode_map_outputs4build_save_selector_opcode07_indexed_pointer_summary4write_save_selector_opcode07_indexed_pointer_outputs7build_save_selector_route_pair_index_source_gap_summary7write_save_selector_route_pair_index_source_gap_outputs,build_save_selector_opcode24_handler_summary,write_save_selector_opcode24_handler_outputs+build_save_selector_opcode24_global_summary+write_save_selector_opcode24_global_outputs7build_save_selector_opcode24_mode1_source_write_summary7write_save_selector_opcode24_mode1_source_write_outputs6build_save_selector_opcode24_mode1_block_write_summary6write_save_selector_opcode24_mode1_block_write_outputs@build_save_selector_opcode24_runtime_enabled_block_write_summary@write_save_selector_opcode24_runtime_enabled_block_write_outputs6build_save_selector_opcode24_current_root_mode_summary6write_save_selector_opcode24_current_root_mode_outputs-build_opcode24_action_payload_pattern_summary-write_opcode24_action_payload_pattern_outputs:build_save_selector_opcode24_mode1_runtime_context_summary:write_save_selector_opcode24_mode1_runtime_context_outputs<build_save_selector_opcode24_runtime_enabled_context_summary<write_save_selector_opcode24_runtime_enabled_context_outputs1build_save_selector_selection_buffer_base_summary1write_save_selector_selection_buffer_base_outputs;build_save_selector_opcode24_mode1_indirect_context_summary;write_save_selector_opcode24_mode1_indirect_context_outputs<build_save_selector_opcode24_mode1_file_read_context_summary<write_save_selector_opcode24_mode1_file_read_context_outputs,build_save_selector_object_field_ref_summary,write_save_selector_object_field_ref_outputs-build_save_selector_object61_consumer_summary-write_save_selector_object61_consumer_outputs2build_save_selector_object61_stream_branch_summary2write_save_selector_object61_stream_branch_outputs3build_save_selector_object61_stream_operand_summary3write_save_selector_object61_stream_operand_outputs9build_save_selector_opcode24_mode1_default_effect_summary9write_save_selector_opcode24_mode1_default_effect_outputs4build_save_selector_branch_selector_equation_summary.build_save_selector_active_flag_source_summary.write_save_selector_active_flag_source_outputs2build_save_selector_secondary_state_source_summary2write_save_selector_secondary_state_source_outputs/build_save_selector_secondary_fill_root_summary/write_save_selector_secondary_fill_root_outputs5build_save_selector_inherited_state_candidate_summary5write_save_selector_inherited_state_candidate_outputs4build_save_selector_predecessor_state_effect_summary4write_save_selector_predecessor_state_effect_outputs.build_save_selector_active_flag_effect_summary.write_save_selector_active_flag_effect_outputs4write_save_selector_branch_selector_equation_outputs3build_save_selector_predecessor_route_order_summary3write_save_selector_predecessor_route_order_outputs-build_save_selector_set_decomposition_summary-write_save_selector_set_decomposition_outputs1build_save_selector_recomposition_lattice_summary1write_save_selector_recomposition_lattice_outputs7build_save_selector_address_predecessor_context_summary7write_save_selector_address_predecessor_context_outputs(build_save_selector_mapset_alias_summary(write_save_selector_mapset_alias_outputs5build_save_selector_target_alias_state_effect_summary5write_save_selector_target_alias_state_effect_outputs/build_save_selector_target_alias_bridge_summary/write_save_selector_target_alias_bridge_outputs2build_save_selector_route_root_ref_context_summary2write_save_selector_route_root_ref_context_outputs7build_save_selector_branch_state_opcode_overlap_summary7write_save_selector_branch_state_opcode_overlap_outputs0build_save_selector_current_state_source_summary0write_save_selector_current_state_source_outputsr$   build_route_blocker_rowswrite_route_blocker_outputsbuild_map_exit_candidate_rows write_map_exit_candidate_outputs,build_original_collision_route_audit_summary,write_original_collision_route_audit_outputs'build_map1_01a_edge_trigger_gap_summary'write_map1_01a_edge_trigger_gap_outputs4build_map1_01a_tile_hotspot_pattern_contrast_summary4write_map1_01a_tile_hotspot_pattern_contrast_outputs7build_map1_01a_strict_event_tile_signature_scan_summary7write_map1_01a_strict_event_tile_signature_scan_outputsr#   r   'build_runtime_trace_feasibility_summary'write_runtime_trace_feasibility_outputs.build_runtime_source_exit_poll_context_summary.write_runtime_source_exit_poll_context_outputs6build_runtime_source_save_load_variant_context_summary6write_runtime_source_save_load_variant_context_outputsrB  7build_runtime_predecessor_route_attempt_context_summary7write_runtime_predecessor_route_attempt_context_outputs+build_runtime_opcode24_flag_context_summary+write_runtime_opcode24_flag_context_outputs-build_runtime_memory_snapshot_context_summary-write_runtime_memory_snapshot_context_outputs)build_runtime_title_start_context_summary)write_runtime_title_start_context_outputsbuild_completion_audit_summarywrite_completion_audit_outputsr    summarize_dispatch_refssummarize_scene_links$build_transition_extraction_gap_rows'write_transition_extraction_gap_outputs%build_map_exit_coordinate_ref_summary%write_map_exit_coordinate_ref_outputs.build_map1_01a_exit_coordinate_context_summary.write_map1_01a_exit_coordinate_context_outputs3build_map1_01a_exit_coordinate_variant_scan_summary3write_map1_01a_exit_coordinate_variant_scan_outputs0build_map1_01a_exit_byte_coordinate_scan_summary0write_map1_01a_exit_byte_coordinate_scan_outputs,build_map1_01a_exit_cns_payload_scan_summary,write_map1_01a_exit_cns_payload_scan_outputs3build_map1_01a_strict_hotspot_review_matrix_summary3write_map1_01a_strict_hotspot_review_matrix_outputs,build_map1_01a_scene_payload_context_summary,write_map1_01a_scene_payload_context_outputs:build_save_selector_frontier_reader_branch_context_summary:write_save_selector_frontier_reader_branch_context_outputs2build_save_selector_frontier_payload_shape_summary2write_save_selector_frontier_payload_shape_outputs(build_map1_01a_resource_ref_scan_summary(write_map1_01a_resource_ref_scan_outputs'build_map1_01a_event_shape_scan_summary'write_map1_01a_event_shape_scan_outputs*build_strict_event_source_coverage_summary*write_strict_event_source_coverage_outputs.build_map1_01a_record_pattern_contrast_summary.write_map1_01a_record_pattern_contrast_outputs-build_map1_01a_strict_target_link_gap_summary-write_map1_01a_strict_target_link_gap_outputs$build_map1_01a_entry_context_summary$write_map1_01a_entry_context_outputs*build_map1_01a_selector_bridge_ref_summary*write_map1_01a_selector_bridge_ref_outputs*build_map1_01a_manifest_point_scan_summary*write_map1_01a_manifest_point_scan_outputs"build_map1_01a_hotspot_gap_summary"write_map1_01a_hotspot_gap_outputs3build_map1_01a_scene_record_cluster_context_summary3write_map1_01a_scene_record_cluster_context_outputs7build_save_selector_predecessor_persistence_gap_summary7write_save_selector_predecessor_persistence_gap_outputs=build_save_selector_secondary_route_overlap_candidate_summary=write_save_selector_secondary_route_overlap_candidate_outputs2build_save_selector_predecessor_tail_reset_summary2write_save_selector_predecessor_tail_reset_outputs1build_save_selector_secondary_reset_scope_summary1write_save_selector_secondary_reset_scope_outputs1build_save_selector_secondary_block_write_summary1write_save_selector_secondary_block_write_outputs6build_save_selector_secondary_global_reset_gap_summary6write_save_selector_secondary_global_reset_gap_outputs5build_save_selector_post_gate_reset_candidate_summary5write_save_selector_post_gate_reset_candidate_outputs3build_save_selector_branch_gate_consistency_summary3write_save_selector_branch_gate_consistency_outputs.build_save_selector_gate_offset_source_summary.write_save_selector_gate_offset_source_outputs/build_save_selector_gate_offset_pattern_summary/write_save_selector_gate_offset_pattern_outputs/build_save_selector_gate_base_candidate_summary/write_save_selector_gate_base_candidate_outputs-build_save_selector_gate_sample_value_summary"PARKED_SAVEDATA_SAMPLE_GATE_VALUES-write_save_selector_gate_sample_value_outputs,build_save_selector_gate_pass_matrix_summary,write_save_selector_gate_pass_matrix_outputs5build_save_selector_opcode20_nested_base_mode_summary5write_save_selector_opcode20_nested_base_mode_outputs.build_save_selector_context58_consumer_summary.write_save_selector_context58_consumer_outputs0build_save_selector_opcode20_slot_source_summary0write_save_selector_opcode20_slot_source_outputs;build_save_selector_opcode20_slot_descriptor_writer_summary;write_save_selector_opcode20_slot_descriptor_writer_outputs6build_save_selector_current_root_frontier_path_summary6write_save_selector_current_root_frontier_path_outputs&build_map1_01a_root_point_scan_summary&write_map1_01a_root_point_scan_outputs4build_map1_01a_strict_source_hotspot_context_summary4write_map1_01a_strict_source_hotspot_context_outputs2build_save_selector_predecessor_bridge_ref_summary2write_save_selector_predecessor_bridge_ref_outputs/build_save_selector_merge_bridge_matrix_summary/write_save_selector_merge_bridge_matrix_outputs1build_save_selector_reverse_reuse_context_summary1write_save_selector_reverse_reuse_context_outputs%build_save_selector_merge_gap_summary%write_save_selector_merge_gap_outputsBbuild_save_selector_predecessor_branch_state_execution_gap_summaryBwrite_save_selector_predecessor_branch_state_execution_gap_outputs/build_save_selector_merge_execution_gap_summary/write_save_selector_merge_execution_gap_outputs@build_save_selector_predecessor_fill_execution_order_gap_summary@write_save_selector_predecessor_fill_execution_order_gap_outputs=build_save_selector_predecessor_descriptor_bridge_gap_summary=write_save_selector_predecessor_descriptor_bridge_gap_outputsCbuild_save_selector_predecessor_fill_site_execution_context_summaryCwrite_save_selector_predecessor_fill_site_execution_context_outputs=build_save_selector_predecessor_fill_opcode10_context_summary=write_save_selector_predecessor_fill_opcode10_context_outputs2build_save_selector_selected_pointer_usage_summary2write_save_selector_selected_pointer_usage_outputs8build_save_selector_selected_pointer_opcode_path_summary8write_save_selector_selected_pointer_opcode_path_outputs8build_save_selector_global_selected_pointer_path_summary8write_save_selector_global_selected_pointer_path_outputs7build_runtime_patched_selector_followup_context_summary7write_runtime_patched_selector_followup_context_outputs6build_save_selector_opcode08_activation_window_summary6write_save_selector_opcode08_activation_window_outputs8build_save_selector_opcode08_unreadable_producer_summary8write_save_selector_opcode08_unreadable_producer_outputs6build_save_selector_opcode09_pointer_collision_summary6write_save_selector_opcode09_pointer_collision_outputsr|   r   7build_save_selector_selected_root_execution_gap_summary7write_save_selector_selected_root_execution_gap_outputs:build_save_selector_route_pair_entry_execution_gap_summary:write_save_selector_route_pair_entry_execution_gap_outputs1build_save_selector_merge_runtime_context_summary1write_save_selector_merge_runtime_context_outputs1build_save_selector_merge_closure_context_summary1write_save_selector_merge_closure_context_outputs1build_save_selector_wrapper_execution_gap_summary1write_save_selector_wrapper_execution_gap_outputs6build_save_selector_opcode20_descriptor_script_summary6write_save_selector_opcode20_descriptor_script_outputs:build_save_selector_opcode20_object_base_candidate_summary:write_save_selector_opcode20_object_base_candidate_outputs8build_save_selector_opcode20_sample_order_effect_summary"PARKED_SAVEDATA_SAMPLE_PARTY_ORDER8write_save_selector_opcode20_sample_order_effect_outputs0build_save_selector_opcode20_order_space_summary0write_save_selector_opcode20_order_space_outputs6build_save_selector_opcode20_context_f2_source_summary6write_save_selector_opcode20_context_f2_source_outputs9build_save_selector_opcode20_runtime_materializer_summary9write_save_selector_opcode20_runtime_materializer_outputs/build_save_selector_gate_base_proof_gap_summary/write_save_selector_gate_base_proof_gap_outputs*build_map1_01a_exit_target_ranking_summary$build_route_investigation_queue_rows'write_route_investigation_queue_outputs"build_route_promotion_gate_summary"write_route_promotion_gate_outputs build_route_assist_frontier_rows#write_route_assist_frontier_outputs*write_map1_01a_exit_target_ranking_outputs-build_reciprocal_transition_candidate_summary-write_reciprocal_transition_candidate_outputsload_map_layout_reviewswrite_map_layout_review_outputs#build_route_blocker_evidence_matrix+write_route_blocker_evidence_matrix_outputs build_web_playtest_route_summary write_web_playtest_route_outputssummarize_tileset_candidateswrite_tile_class_outputssummarize_tile_class_coverage"summarize_collision_fallback_deltasummarize_tile_class_gaps summarize_tile_class_gap_summarytile_class_gaps_markdownsummarize_tile_pair_class_gapstile_pair_class_gaps_markdownwrite_tile_pair_class_gap_pages"tile_pair_class_gap_index_markdownsummarize_map_tile_class_gapsmap_tile_class_gaps_markdownwrite_map_tile_class_gap_pages!map_tile_class_gap_index_markdownrender_tile_class_gap_galleriestile_class_gap_gallery_markdownr   render_tileset_usage_gallerykeep_review_previewsr   r   (*  argsexe_datasections*runtime_patched_selector_active_order_poll*runtime_patched_selector_branch_state_poll5runtime_predecessor_direction_sweep_active_order_poll2runtime_predecessor_left_overrun_active_order_pollr  audio_archive_manifestaudio_title_provenancedirectdraw_flowr  r  input_keymapkorean_text_candidatescns_text_candidatestext_tablestext_routine_callersr`  scene_event_text_refsrw  r  save_loader_tracera  savedata_sample_coverager  savedata_offset_triage_clusterssavedata_targeted_delta_intakescene_selector_progresssave_selector_referencesr  coordinate_candidatesmetadata_by_mapobject_assetsenemy_assetstileset_assetsra  event_map_namesr   r   
map_assetsscene_link_dataentryr	  runtime_map_assetsbattle_backgroundsmap_datatile_classescns_payloadsassetr  map_render_reviewsmap_render_review_rowstransition_reviewsr  transition_review_shortlistplayable_progresssave_selector_frontierfield_map_record_rootsr  save_selector_xrefssave_selector_leaf_streams#save_selector_scene_record_sequence#save_selector_scene_adjacency_index*save_selector_runtime_selector_byte_writesscript_handler_tablesave_selector_stream_traces$save_selector_dispatch_table_contextsave_selector_branch_state"save_selector_branch_state_writers#save_selector_branch_state_dispatchevent_handler_text_refsevent_text_source_flowevent_dialogue_blocks!dialogue_candidate_review_summaryrV  rP  r[  event_vm_opcode_semanticsr  save_point_candidatesbattle_event_candidates$original_battle_resource_descriptorsbattle_enemy_candidatesnon_party_descriptor_linkscharacter_sprite_framescns_frame_assetscns_frame_rect_exe_scanui_window_reviewcns_rect_reviewbattle_action_handler_context!battle_action_handler_context_outr  menu_candidate_review_summary#completion_candidate_review_summary!movement_candidate_review_summarymobile_browser_controls_summarymenu_candidate_reviewsrN  rO  "candidate_save_point_browser_smokerQ  rR  rS  rT  rU  $candidate_event_object_browser_smokerW  rX  rY  rZ  +candidate_transition_progress_browser_smoker\  route_guide_browser_summaryr]  r^  r_  title_start_browser_summaryr`  rM  candidate_browser_smoke_summaryr  r%  r&  r'  save_selector_selection_statesave_selector_frontier_branchessave_selector_branch_paths save_selector_scene_list_context%save_selector_frontier_selection_flowsave_selector_selection_writers"save_selector_current_writer_paths+save_selector_selection_buffer20_provenancesave_selector_writer_chainsave_selector_gate_pathssave_selector_opcode24_payload$save_selector_opcode24_payload_table#save_selector_dispatch_stop_context save_selector_leaf_table_contextsave_selector_leaf_index_space'save_selector_leaf_table_global_context(save_selector_wrapper_descriptor_context+save_selector_route_pair_descriptor_context)save_selector_opcode2c_route_pair_context(save_selector_data_descriptor_opcode_map'save_selector_opcode07_indexed_pointers)save_selector_route_pair_index_source_gapsave_selector_opcode24_handlersave_selector_opcode24_globals*save_selector_opcode24_mode1_source_writes)save_selector_opcode24_mode1_block_writes3save_selector_opcode24_runtime_enabled_block_writes)save_selector_opcode24_current_root_modes opcode24_action_payload_patterns,save_selector_opcode24_mode1_runtime_context.save_selector_opcode24_runtime_enabled_context$save_selector_selection_buffer_bases-save_selector_opcode24_mode1_indirect_context.save_selector_opcode24_mode1_file_read_contextsave_selector_object_field_refs save_selector_object61_consumers$save_selector_object61_stream_branch&save_selector_object61_stream_operands+save_selector_opcode24_mode1_default_effect+save_selector_branch_selector_equation_base!save_selector_active_flag_sources%save_selector_secondary_state_sources"save_selector_secondary_fill_roots(save_selector_inherited_state_candidates&save_selector_predecessor_state_effect save_selector_active_flag_effect&save_selector_branch_selector_equation%save_selector_predecessor_route_ordersave_selector_set_decomposition#save_selector_recomposition_lattice)save_selector_address_predecessor_contextsave_selector_mapset_aliases(save_selector_target_alias_state_effects"save_selector_target_alias_bridges$save_selector_route_root_ref_context)save_selector_branch_state_opcode_overlap#save_selector_current_state_sourcesroute_blockersr  r  map1_01a_edge_trigger_gap&map1_01a_tile_hotspot_pattern_contrast)map1_01a_strict_event_tile_signature_scanr   runtime_source_exit_poll_context(runtime_source_save_load_variant_context)runtime_predecessor_route_attempt_contextruntime_opcode24_flag_contextruntime_memory_snapshot_contextr  completion_auditscene_linkstransition_extraction_gapsmap_exit_coordinate_refs map1_01a_exit_coordinate_context%map1_01a_exit_coordinate_variant_scan"map1_01a_exit_byte_coordinate_scanmap1_01a_exit_cns_payload_scan%map1_01a_strict_hotspot_review_matrixmap1_01a_scene_payload_context,save_selector_frontier_reader_branch_context$save_selector_frontier_payload_shapemap1_01a_resource_ref_scanmap1_01a_event_shape_scanr   map1_01a_record_pattern_contrastmap1_01a_strict_target_link_gapmap1_01a_entry_contextmap1_01a_selector_bridge_refsmap1_01a_manifest_point_scanmap1_01a_hotspot_gap%map1_01a_scene_record_cluster_context)save_selector_predecessor_persistence_gap0save_selector_secondary_route_overlap_candidates$save_selector_predecessor_tail_reset#save_selector_secondary_reset_scope$save_selector_secondary_block_writes(save_selector_secondary_global_reset_gap(save_selector_post_gate_reset_candidates%save_selector_branch_gate_consistency!save_selector_gate_offset_sources"save_selector_gate_offset_patterns"save_selector_gate_base_candidates save_selector_gate_sample_valuessave_selector_gate_pass_matrix(save_selector_opcode20_nested_base_modes!save_selector_context58_consumers#save_selector_opcode20_slot_sources.save_selector_opcode20_slot_descriptor_writers)save_selector_current_root_frontier_pathsmap1_01a_root_point_scan&map1_01a_strict_source_hotspot_context%save_selector_predecessor_bridge_refs!save_selector_merge_bridge_matrix#save_selector_reverse_reuse_contextsave_selector_merge_gap4save_selector_predecessor_branch_state_execution_gap!save_selector_merge_execution_gap2save_selector_predecessor_fill_execution_order_gap/save_selector_predecessor_descriptor_bridge_gap5save_selector_predecessor_fill_site_execution_context/save_selector_predecessor_fill_opcode10_context$save_selector_selected_pointer_usage+save_selector_selected_pointer_opcode_paths+save_selector_global_selected_pointer_pathsrb  )save_selector_opcode08_activation_windows+save_selector_opcode08_unreadable_producers)save_selector_opcode09_pointer_collisions!synthetic_savedata_selector_probe(save_selector_real_savedata_evidence_gap)save_selector_selected_root_execution_gap,save_selector_route_pair_entry_execution_gap#save_selector_merge_runtime_context#save_selector_merge_closure_context#save_selector_wrapper_execution_gap)save_selector_opcode20_descriptor_scripts-save_selector_opcode20_object_base_candidates+save_selector_opcode20_sample_order_effects"save_selector_opcode20_order_space)save_selector_opcode20_context_f2_sources,save_selector_opcode20_runtime_materializers!save_selector_gate_base_proof_gap&map1_01a_exit_target_ranking_for_queueroute_investigation_queuer  route_assist_frontiermap1_01a_exit_target_rankingre  map_layout_reviewsroute_blocker_evidence_matrixweb_playtest_routetile_class_coveragecollision_fallback_deltatile_class_gapstile_class_gap_summaryrA   tile_pair_class_gap_dirtile_pair_class_gap_indexrB   r  compact_map_tile_class_gapsmap_tile_class_gap_dirmap_tile_class_gap_indexr@   tile_class_gap_gallery_dirtile_usage_dirinfofirst_layer_tilesetsusage_by_tilesettileset_namer   r  s*                                                                                                                                                                                                                                                                                                           @r]   mainr.    sU   <DIIdTI*}$002HX&H __ggi 	

Cggrr  }Dr  E  	F / __ggi 	

Cggrr  }Dr  E  	F / __ggi 	

Cggrr  }Dr  E  	F : ggooq 	

Coozz  ELz  M  	N 7
  } 45K))

;U1=D *  
(/A)A(B
CDA$G()?E	,S3P-P,Q
RSA$G()?E	,S3P-P,Q
RS3D=4HVabO!/37	%c,B&B%C
DE1$2FGN 5	$S+@%@$A
BC5d]6JK"#3S9	&s-B'B&C
DE-d].BCL**

<eA>E +  	(()>|)LW^(_(('
,
	 
	 	 )  
+C2C,C+D
EF@TX[hThi'(>D	,S3P-P,Q
RS:;G$%8#>	)#0J*J)K
LM*+ABK[#.	!#(:":!;
<=<XG]_cfs_st%&:C@	*31L+L*M
NOHk2F>xQgh&'<cB	+C2N,N+O
PQR8H7A7A#$5s; GR] ^+,EsK&&22

'e
SVZZ 3  	$$00/
&
'	(
	 	 1   ?@:<&L&N#%J%L"CDXY)*A3G> 
 **BCH ?@X Y*+DcJ9(KQST"8,O(0M-/LY+2B2BCW2XYYN178uU|8O8{/?/?/PQtQo~TgkX\W]]aUbT  AJ&v.O-.@ '') ?  ;!7!=2>?% ?  ;!7!=2>? 
zz~~/0C7"#g%6#g#g-#gZf#gh 	:CC#((4'8!89	: 	XY#C(
+S9_oN    
 *+##	 33Dy)H$TF]5H%HIL"<07=k>N>Nw>W7XYt$T*YLY**

<eA>E +  
F3|$%%EcL_F_E`
ab	F3+,--FsMhGhFi
jk  ,,

8%JG$N -  
F3x=/!3C:O4O3P
QR**

6a84? +  	(('
&/	
	 	 )  	))(
** + U  ODK4D4D3ET"JJ !
	
 		  *  +62##//

$5CdJ 0  	!!--,
#
$	%
	 	 .  1v11/: $$6<</:
 1v11 12 $$6A#$6<= 12	 #II\"]-.I3O7/"; $$5s;>! ))?E@  ((>D"H.# ..I3O(OPkmp(q%7  %%8#>!EhPf!g+,FL*[\v*w'56Y[^_*[ +'
 66Y[^_1h"2.
 <<fhkl=hHbc&';SA"GRl"m,-H#N+]#,( 77[]`a!I(!S,-GM)X"*& 44VX[\*[*+' 66Y[^_B+}	 ))@#F	-c4R.R-S
TUA(L]^()?E	,S3P-P,Q
RS>xI_`&'<cB	+C2N,N+O
PQ(OPT(U%+,MsS	7>f8f7g
hi,WX\,])/0UWZ[	;CBn<n;o
pq*STX*Y'-.QSVW	9#@j:j9k
lm3efj3k067cehi	@DD
E	G !H+!
 ,,EsK	/6V0V/W
XYA+!)	 ))?E	,S3P-P,Q
RS>
 ''<cB	+C2N,N+O
PQ<=RTfhkl+\,(
 C,	 ))@#F	4S;W5W4X
YZ!#55==?%)ZZ::EEwEW&
" #jj#0N*N)Y)Ycj)Y)kl4"##&	
 ""2C8	&s-D'D&E
FG9$:NPST$%<cB	-c4R.R-S
TU5%%,, ##3S9	+C2L,L+M
NO3C8O!/37	*31J+J*K
LM$O%!
 )T%)% 
34U3V
WXU %H$M!'(EsK	3C:^4^3_
`a*STX*Y'-.QSVW	9#@j:j9k
lm(OPT(U%+,MsS	7>f8f7g
hi&KD&Q#)*I3O	5c<b6b5c
de:>>wGM2:>>zJPb'H'L'LZ'X'^\^$)L)P)PQ\)])cac&*@*D*DX*N*TRT')?)C)CG)L)RPR&-C-G-G-T-ZXZ*(>(B(B6(J(Pb%)?)C)CG)L)RPR&+P+T+TUb+c+igi('='A'A*'M'SQS$0Q0U0UV`0a0geg--P-T-TU\-]-cac*)L)P)PQW)X)^\^&488FL" 0 ))JK"CD"I%&A3G	1#8Z2Z1[
\]377EK+,RS*+PQ"CD"I%&A3G	1#8Z2Z1[
\]377EK!./P!Q&KD&Q#)*I3O	5c<b6b5c
de*+IJ2jks2t/<=hjmn0f3"1- ;;dfij.c1/+ ::acfg	
34@$OPX$Y!/0MsS&N#"	'# 00OQTU!E'""
 ,,FL'U'($
 33SUXY,\'#-) 88]_bc	
7tD&J "''# 11PRUV)U'*& 44VX[\2k'*3/ >>ikno!F'*" --GMA"" 
 **BCH	
8E%N &" 11OQTU+] ,( 77[]`a*[ +' 66Y[^_'U "#	($ 33SUXY%Q"#&"
 11OQTU.c/+ ::acfg/e"0, ;;cehi2k&+#3/
 >>ikno0g31- <<egjk%Q"#1	&" 11OQTU2k&+#1	3/ >>ikno/e+(,	0, ;;cehi.b(/+ 99`bef0g//1-
 <<egjk%Q &" 11OQTU%P&&" 00NPST1hiq1r.;<fhkl0fgo0p-:;dfijHR 8 E; 1g' 1-
 ;;dfij'T($ 22RTWX3m22	40 ??kmpq5q&2	62 AAoqtu	
0=+\]e+f(56Z\_`4o2,51
 @@mors5q62 AAoqtu&RS[&\#01PRUV'TUX'Y$12RTWX+]^f+g(67[]`a-`.* 88^`cd2k&4(.	3/ >>ikno	
?tL2f2h/(V)% 33TVYZ,^"-) 77\^ab)XYacw)x&34VX[\/d*0, ::bdgh-a-c*89_ade'U).3($
 33SUXY-a.(.* 99_ade,_0-)
 88]_bc&S'# 22QSVW*[\p*q'56Y[^_0g*1-
 <<egjk#K* 1'$  --I3O/d$*0, ::bdgh)X$*&*& 44VX[\+],( 77[]`a0g"+'	1- <<egjk*Z'*	+' 55XZ]^	
4DA)*;=\]#$5s;-"#'	N  47!	 %%8#>%Q&" 11OQTU	4S;`5`4a
bc G}&!
 ,,EsK	/6T0T/U
VW-a&	.* 99_ade0g.	1- <<egjk"#46I8T#$5s;#$5s; G I+,EsKKKSSU+YJJ[[ffpwfxy bbjjl JJjjuu  v   ,
( 	77WY\]/1,	Q	QYY[VV^^`^^ffhVV^^`WW__a3iXX``b JJ``kku|k}~ZZbbd JJbbmmw~m  A bbjjl JJccnn$ o   ZZbbd JJ[[ff$ g   [[cce JJ\\gg$ h  (/=4
0@ 	??gilmCHHFGH4klo4p1?@ikno44<<>(S(U%34QSVW&(#,,446*WJJ<<GGQXGYZ ++
' 	66UWZ["$&&O+55==? JJ==HHRYHZ[77??A JJ??JJT[J\] +'
# 	22MsS5	
 h- 3 #< & * (F 3 'M *S +L %@  !$$6 7!"  7::;KQO#$  6%&  6'(  6)* $L+, @-. /b/2 ##3S9	
<DI$$0061BW0U--99

(uQG$N :  	&&22' 3  #6*K))

;U1=D *  	''&
+
	
	 	 (  	##//f% 0  "F	" ,,FLD"  **BCH	
GtT'U ($
 33SUXY,_-)
 88]_bc)Y1+/*& 55WY\]%Q/&" 11OQTU,_ -.-) 88]_bc%Q"&" 11OQTU3m(.&1	40 ??kmpq+]4	,( 77[]`a!I"
 --GM G!
 ,,EsK#M$  //KSQ'U"(+-($ 33SUXY&S'# 22QSVWA!	 ))?E$Nx$X!./LcR#M$  //KSQ="$"	 '';SA,_'(	-) 88]_bc0g0.--+1- <<egjk7t*184
 BBrtwx+]*,(
 77[]`a*["-,1+' 66Y[^_+\]e+f(56Z\_`/e+-,1*8,0, ;;cehi/d -0, ::bdgh,_" +	-) 88]_bc	
@M(V-)%
 33TVYZ)X*& 44VX[\)X),*& 44VX[\'T**($ 22RTWX%Q(. &"
 11OQTU/d*),	0, ::bdgh(V'&0)%
 33TVYZ*Z0+'
 55XZ]^5p+62 @@npst	
DDQ0f "#1- ;;dfijE1  ++CSI-a-1-*&"&('4,+!$ -%'.** 99_ade,^ ,1-) 77\^ab(W)% 44UWZ[*[)+' 66Y[^_C%- 1 **A3GJ520/41# OOWWY JJWWbblsbtuVV^^` JJ^^iiszi{|cckkm JJkkvv  AHv  I  Jkkssu JJss~~  IP~  Q  R``hhj JJhhss  ~Es  F  Gcckkm JJkkvv  AHv  I  J^^ffh JJffqq  |Cq  D  E__ggi JJggrr  }Dr  E  Fffnnp JJnnyy  DKy  L  M ``hhj 

C"hhss  ~Es  F  GO)	
 9X G< )X'+)*,<)% 44UWZ[H@0451-+W'O#G NNVVX 

C"VVaakrast KKSSU 

C"SS^^ho^pq'	
 70 E:
 	F4>	
 4 B7
 	L>@;GGOOQ JJOOZZdkZlmJJRRT JJRR]]gn]op1	
 : H=
 	K520/41# OOWWY JJWWbblsbtuVV^^` JJ^^iiszi{|cckkm JJkkvv  AHv  I  Jkkssu JJss~~  IP~  Q  R``hhj JJhhss  ~Es  F  Gcckkm JJkkvv  AHv  I  J^^ffh JJffqq  |Cq  D  E__ggi JJggrr  }Dr  E  Fffnnp JJnnyy  DKy  L  M ``hhj 

C"hhss  ~Es  F  G1c4iU+	
 9\ G< )X'+)*,<)% 44UWZ[E>@A/ 	
 4 B7 ,^,(
 77[]`a2j3/ ==hjmn2j3/ ==hjmn	Q	QYY[VV^^`^^ffhVV^^`WW__a3iXX``b JJ``kku|k}~ZZbbd JJbbmmw~m  A bbjjl JJccnn$ o   ZZbbd JJ[[ff$ g   [[cce JJ\\gg$ h  (/7=4
0@ 	??gilmCHHFGH4k(/7 $5
1 	@@ikno0ghhppr 	

Cpp{{  FM{  N  	O$10*3222EEMMO 	

CMMXXbiXjkEEMMO 	

CMMXXbiXjkMMUUW 	

CUU``jq`rsHHPPR 	

CPP[[el[mn}11-4 <<egjk0f31- ;;dfij2j133/
 ==hjmn0f331-
 ;;dfij(P(R%/P/R,0g,33*,0'1199; 	

C99DDgDVW33;;= 	

C;;FFPWFXY66>>@ 	

C>>IISZI[\>>FFH 	

CFFQQ[bQcd;;CCE 	

CCCNNX_N`a;;CCE 	

CCCNNX_N`a88@@B 	

C@@KKU\K]^DDLLN 	

CLLWWahWijNNVVX 	

CVVaakrastYYaac 	

Caallv}l~ddlln 	

Cllww  BIw  J  	KRRZZ\ 	

CZZeeovewx``hhj 	

Chhss  ~Es  F  	G1cckkm 	

Ckkvv  AHv  I  	Jhhppr 	

Cpp{{  FM{  N  	OQQYY[ 	

CYYddnudvw\\ddf 	

Cddoo  zAo  B  	C!1}?1-@ <<egjk3m&/1/10111(40 ??kmpq*[)=14-+' 66Y[^_*[)+'+*,-171+' 66Y[^_H@0451-//+W'O#G NNVVX 

C"VVaakrast KKSSU 

C"SS^^ho^pq+	
 74 E:
 	F4>	
 4 B7
 	L>@;GGOOQ JJOOZZdkZlmJJRRT JJRR]]gn]op1	
 : H=
 	F>@A/ 	
 4 B7 +\(/03/1111)'S+' 66Y[^_0f611-
 ;;dfij4n1,51
 ??lnqr2j*13/ ==hjmn)Y1+3*&
 55WY\]0f5*2	1- ;;dfij3l13"40 >>jlop(W*013&1=:	)% 44UWZ[-W 
+.* !E |!|!|! 	(|! 	.	|!
 	#|! 	|! 	#|! 	!|! 	6|! 	7|! 	2|! 	<|! 	3|! 	5|! 	7|!  	4!|!" 	.#|!$ 	!%|!& 	)'|!( 	')|!* 	*+|!, 	.-|!. 	//|!0 	*1|!2 	+3|!4 	+5|!6 	)7|!8 	'9|!: 	/;|!< 	2=|!> 	=?|!@ 	)A|!B 	+C|!D 	1E|!F 	,G|!H 	-I|!J 	+K|!L 	,M|!N 	.O|!P 	2Q|!R 	4S|!T 	2U|!V 	0W|!X 	.Y|!Z 	([|!\ 	,]|!^ 	%_|!` 	1a|!b 	2c|!d 	+e|!f 	-g|!h 	.i|!j 	,k|!l 	*m|!n 	4o|!p 	4q|!r 	-s|!t 	2u|!v 	5w|!x 	2y|!z 	4{|!| 	2}|!~ 	*|!@ 	4A|!B 	1C|!D 	-E|!F 	1G|!H 	'I|!J 	#K|!L 	6M|!N 	+O|!P 	2Q|!R 	,S|!T 	2U|!V 	4W|!X 9Y|!Z 5[|!\ 0]|!^ 5_|!` 1a|!b 7c|!d 5e|!f =g|!h 	1i|!j 	'k|!l 	)m|!n 	,o|!p 	)q|!r 	's|!t 	4u|!v 	0w|!x 	/y|!z 	*{|!| 	2}|!~ 	-|!@ 	)A|!B 	(C|!D 	E|!F 	&G|!H 	%I|!J 	!K|!L 	7M|!N 	2O|!P 	"Q|!R 	+S|!T ";U|!V 1W|!X &LY|!Z -V[|!\ .S]|!^ /U_|!` :ba|!b 0\c|!d (Le|!f 6hg|!h 3bi|!j 3bk|!l 9nm|!n %Fo|!p 'Jq|!r 'Js|!t %Ku|!v +Dw|!z ,,EsK=!++335 	

C33>>>PQ!-.!1:7=++)*)01'* '';SA	*31L+L*M
NO<!
 ((=sC#M +$  //KSQ'T!($ 22RTWX0AZ1Z\de	
%T2#$6<	
+48<+6
 

6dC5	d
 h-d 3d #<d 2d +Ld &d *d (Fd 3d 'Md *Sd  'M!d" !$$6 7#d$  7::;KQO%d&  6'd(  6)d*  :+d, 3-d. ./d0 &K1d2 &B3d4 !A5d6  ?7d8 &K9d: -;d< ;=d> 9?d@ 1AdB  ECdD (JEdF $BGdH &FIdJ !FKdL "HMdN 0OdP BQdR >SdT @UdV @WdX >YdZ <[d\  6]d^ $L_d` 8adb )Vcdd @edf %Ngdh Bidj *Xkdl %Nmdn 'Rodp (Tqdr $Lsdt Budv $Lwdx  Dydz &P{d| $L}d~ *d@ >AdB 'RCdD 'REdF  DGdH %NIdJ (TKdL @MdN %NOdP 'RQdR %NSdT ,\UdV "HWdX <YdZ >[d\ 6]d^ :_d` 0adb 2cdd +edf %Ngdh 'Ridj @kdl $Lmdn Bodp  Dqdr 0dsdt 0udv @wdx Bydz !F{d| %N}d~ 5`d@ 3\AdB 1XCdD !FEdF $CGdH (KIdJ %NKdL 4MdN $LOdP @QdR  DSdT !FUdV BWdX >YdZ B[d\ B]d^ .`_d` +Zadb +Zcdd 1fedf Bgdh 8idj &Pkdl /bmdn (Todp 'Rqdr  Dsdt %Nudv $Lwdx =ydz <{d| (T}d~ (Ld@ BAdB BCdD <EdF 8GdH #JIdJ 'RKdL %NMdN #JOdP "HQdR >SdT %NUdV  DWdZ 66>>@ '+jj#8\2\1g1gqx1g1y&z]d^ $>_d` 2adb *Jcdd -Oedf -Pgdh ,Nidj 0Vkdl +Lmdn ,Nodp /Sqdr *Jsdt 3\udv 0Vwdx ,Nydz 6a{d| 2}d~ ,d@ !8AdB  6CdD ,EdF %@GdJ ##3S9$G!$0!,&/14,!-+*1%%& (T0eAC";'E2&L)R&LA2[=%!@ 00MsS9%B5++335  ::s-F'F&Q&Q[b&Q&cd)I$?%A EEMMO 6:ZZFFQQ[bQc6
  ??GGI 04zz@@KKU\K]0
 +. %%7=	
GtT&&22$X{; 3  

.d;\3/	
$D17,O%%11

&U1EL 2   B(LY**66

+%JWZ^^ 7  0,GO=oN!!--

?qADH .  	((44

)aH4O 5  	++ 1 ,  :(LQ&&22

'eAFM 3  	$$00%&:; 1  "$:: ?@TVm nz)55*+DF]^ 6  

1>7,O%%11

&UzRUYY 2   '#  u:K\// 1'',3BQ7WWWb)"1-+.779+=c)nQ'4
	
# # 	((443
-
.	/
	 	 5  	##//$%89 0  !#88=>QSijj(44)*BDZ[ 5   "	zz~~/0C7%(+E%E"#B?Tn#o 	,	,88+,DF`a 	9 	
 |+% )'
 XXo&?488I+>*?C'
   :(C0 	L( .L>!<<		 
,	,88 D 	9 	
 
F3v;-7>Q8Q7R
ST	F3)*++I#PgJgIh
ij	F*../?CDDghk  oK  iK  hL  M  N	F3()**J3QiKiJj
kl	F3)*++B3IbCbBc
de	+C2J,J+K
LM	F3,-..UVY\~V~U  A  B	F3}%&&<SCU=U<V
WX	HS&''`
ab	F3{#$$8?Q9Q8R
ST	F3x=/!EcLgFgEh
ij	K2344T
UV	"3)<#<"=
>?	)#0J*J)K
LM	.s5T/T.U
VW	%c,@&@%A
BC	*31J+J*K
LM	F30122PQhPi
jk	)#0H*H)I
JK	F3/011NOeNf
gh	F3/011NsUrOrNs
tu  ?@/4G		RYHZG[\] IF 9QT> Z6pA#N'
s4   Di,DiDi
Di34DiUA;Di[64Di!__main__)r?  r   )r?  rr  )r?  zargparse.Namespace)r   r   r?  	list[str])r0   r   r   r   r?  None)r   r0  r?  z
list[Path])r   r   r?  z
int | None)r	  r   r?  bool)r	  r   r  r   r?  r1  )r  r   r?  r1  )r	  r   r?  r   )r   r   r?  r1  )r`  
list[dict]r?  r0  )r?  r0  )rw  r3  r?  zdict[str, dict])r?  r1  (  r   
__future__r   r   r   r  r   collectionsr   pathlibr   classify_cns_payloadsr   
decode_cnsr   r   r	   r
   extract_scene_eventsr   extract_scene_manifestr   r  r   r   save_scene_selector_htmlr   export_battle_enemy_candidatesr   r  r   r  r   export_map_jsr   r   ra  r   r  r   r  r   r  r  'summarize_battle_action_handler_contextr  r  rC  rv  rw   summarize_audio_title_provenancerx  ry  .summarize_original_battle_resource_descriptorsr  r  r#  r$  !probe_scene_coordinate_candidatesr   r  probe_exe_scene_tablesr   render_tile_class_gap_galleryr   r9  r   r8  r:  r   r   summarize_map_tilesr   r4  r5  r   r7  r    r!   r6  summarize_map_exit_candidatesr"   rq  rr  (summarize_original_collision_route_auditrs  rt  #summarize_map1_01a_edge_trigger_gapru  rv  0summarize_map1_01a_tile_hotspot_pattern_contrastrw  rx  3summarize_map1_01a_strict_event_tile_signature_scanry  rz  "summarize_map_exit_coordinate_refsr  r  *summarize_map1_01a_exit_coordinate_contextr  r  /summarize_map1_01a_exit_coordinate_variant_scanr  r  ,summarize_map1_01a_exit_byte_coordinate_scanr  r  (summarize_map1_01a_exit_cns_payload_scanr  r  /summarize_map1_01a_strict_hotspot_review_matrixr  r   summarize_map1_01a_entry_contextr  r  &summarize_map1_01a_manifest_point_scanr  r  "summarize_map1_01a_root_point_scanr  r  'summarize_map1_01a_selector_bridge_refsr  r  summarize_playable_progressr#   r$   r  r  summarize_route_blockersro  rp  summarize_route_guide_browserr  r  summarize_title_start_browserr  r  #summarize_route_investigation_queuer  r  summarize_route_promotion_gater  r  summarize_route_assist_frontierr  r  summarize_completion_auditr  r  "summarize_candidate_browser_smokesr  r  %summarize_completion_candidate_reviewr  r  #summarize_dialogue_candidate_reviewr  r  'summarize_event_object_candidate_reviewr  r  summarize_menu_candidate_reviewr  r  #summarize_movement_candidate_reviewr  r  !summarize_mobile_browser_controlsr  r  %summarize_save_point_candidate_reviewr  r  .summarize_transition_progress_candidate_reviewr  r  #summarize_runtime_trace_feasibilityr{  r|  )summarize_runtime_memory_snapshot_contextr  r  %summarize_runtime_title_start_contextr  r  *summarize_runtime_source_exit_poll_contextr}  r~  2summarize_runtime_source_save_load_variant_contextr  r  3summarize_runtime_predecessor_route_attempt_contextr  r  'summarize_runtime_opcode24_flag_contextr  r  $summarize_transition_extraction_gapsr  r  %summarize_transition_review_shortlistr%   r  r  r  (summarize_map1_01a_scene_payload_contextr  r  $summarize_map1_01a_resource_ref_scanr  r  #summarize_map1_01a_event_shape_scanr  r  &summarize_strict_event_source_coverager  r  *summarize_map1_01a_record_pattern_contrastr  r  )summarize_map1_01a_strict_target_link_gapr  r  summarize_map1_01a_hotspot_gapr  r  0summarize_map1_01a_strict_source_hotspot_contextr  r  /summarize_map1_01a_scene_record_cluster_contextr  r  &summarize_map1_01a_exit_target_rankingr  r   'summarize_route_blocker_evidence_matrixr&   r%  r&  summarize_web_playtest_router'  r(  *summarize_reciprocal_transition_candidatesr!  r"  summarize_event_transitionsr'   5summarize_event_object_branch_state_stream_candidatesr  r  3summarize_event_object_branch_state_candidate_linksr  r  1summarize_event_object_branch_state_block_contextr  r   summarize_field_map_record_rootsr  r  summarize_directdraw_flowrz  r{  summarize_exe_importsr(   summarize_runtime_timingr|  r}  summarize_runtime_movementr~  r  summarize_input_keymapr  r   summarize_korean_text_candidatesr  r  summarize_cns_text_candidatesr  r  build_cns_frame_assetsr  r  r  build_ui_window_review_datar  r  build_cns_rect_review_datar  r  !probe_cns_frame_rect_exe_patternsr)   r  r  summarize_text_tablesr  r  summarize_text_routine_callersr  r  !summarize_event_handler_text_refsr  r   summarize_event_text_source_flowr  r  summarize_event_dialogue_blocksr  r  #summarize_event_vm_opcode_semanticsr  r   summarize_event_vm_semantics_gapr  r  summarize_save_point_candidatesr  r  r,  summarize_scene_dispatch_refsr  summarize_scene_event_text_refsr  r  summarize_scene_eventsr  r*   !summarize_scene_selector_progressr  r  "summarize_save_selector_referencesr+   r  r   summarize_save_selector_frontierr  r  )summarize_save_selector_frontier_branchesr  r  $summarize_save_selector_branch_pathsr  r  *summarize_save_selector_scene_list_contextr  r  6summarize_save_selector_frontier_reader_branch_contextr  r  .summarize_save_selector_frontier_payload_shaper  r  -summarize_save_selector_scene_record_sequencer  r  -summarize_save_selector_scene_adjacency_indexr  r  /summarize_save_selector_frontier_selection_flowr  r  )summarize_save_selector_selection_writersr,   r	  r
  ,summarize_save_selector_current_writer_pathsr  r  5summarize_save_selector_selection_buffer20_provenancer  r  $summarize_save_selector_writer_chainr  r  "summarize_save_selector_gate_pathsr  r  (summarize_save_selector_opcode24_payloadr  r  .summarize_save_selector_opcode24_payload_tabler  r  -summarize_save_selector_dispatch_stop_contextr  r  2summarize_save_selector_data_descriptor_opcode_mapr%  r&  1summarize_save_selector_opcode07_indexed_pointersr'  r(  5summarize_save_selector_route_pair_descriptor_contextr!  r"  3summarize_save_selector_opcode2c_route_pair_contextr#  r$  2summarize_save_selector_wrapper_descriptor_contextr  r   *summarize_save_selector_leaf_table_contextr  r  1summarize_save_selector_leaf_table_global_contextr  r  (summarize_save_selector_opcode24_handlerr+  r,  (summarize_save_selector_opcode24_globalsr-  r.  4summarize_save_selector_opcode24_mode1_source_writesr/  r0  6summarize_save_selector_opcode24_mode1_runtime_contextr9  r:  8summarize_save_selector_opcode24_runtime_enabled_contextr;  r<  5summarize_save_selector_opcode24_mode1_default_effectrK  rL  7summarize_save_selector_opcode24_mode1_indirect_contextr?  r@  8summarize_save_selector_opcode24_mode1_file_read_contextrA  rB  3summarize_save_selector_opcode24_mode1_block_writesr1  r2  =summarize_save_selector_opcode24_runtime_enabled_block_writesr3  r4  3summarize_save_selector_opcode24_current_root_modesr5  r6  *summarize_opcode24_action_payload_patternsr7  r8  )summarize_save_selector_object_field_refsr-   rC  rD  *summarize_save_selector_object61_consumersrE  rF  .summarize_save_selector_object61_stream_branchrG  rH  0summarize_save_selector_object61_stream_operandsrI  rJ  +summarize_save_selector_context58_consumersr  r  0summarize_save_selector_branch_selector_equationrM  rZ  +summarize_save_selector_active_flag_sourcesrN  rO  /summarize_save_selector_secondary_state_sourcesrP  rQ  ,summarize_save_selector_secondary_fill_rootsrR  rS  :summarize_save_selector_secondary_route_overlap_candidatesr  r  2summarize_save_selector_inherited_state_candidatesrT  rU  0summarize_save_selector_predecessor_state_effectrV  rW  *summarize_save_selector_active_flag_effectrX  rY  /summarize_save_selector_predecessor_route_orderr[  r\  )summarize_save_selector_set_decompositionr]  r^  -summarize_save_selector_recomposition_latticer_  r`  3summarize_save_selector_address_predecessor_contextra  rb  &summarize_save_selector_mapset_aliasesr.   rc  rd  2summarize_save_selector_target_alias_state_effectsre  rf  ,summarize_save_selector_target_alias_bridgesrg  rh  3summarize_runtime_patched_selector_followup_contextr  r  .summarize_save_selector_route_root_ref_contextri  rj  3summarize_save_selector_predecessor_persistence_gapr  r  >summarize_save_selector_predecessor_branch_state_execution_gapr  r  <summarize_save_selector_predecessor_fill_execution_order_gapr  r  9summarize_save_selector_predecessor_fill_opcode10_contextr  r  9summarize_save_selector_predecessor_descriptor_bridge_gapr  r  ?summarize_save_selector_predecessor_fill_site_execution_contextr  r  .summarize_save_selector_predecessor_tail_resetr  r  /summarize_save_selector_predecessor_bridge_refsr  r  +summarize_save_selector_merge_bridge_matrixr  r  -summarize_save_selector_reverse_reuse_contextr  r  !summarize_save_selector_merge_gapr  r  +summarize_save_selector_merge_execution_gapr  r  -summarize_save_selector_merge_runtime_contextr  r  -summarize_save_selector_merge_closure_contextr  r  -summarize_save_selector_wrapper_execution_gapr  r	  .summarize_save_selector_selected_pointer_usager  r  5summarize_save_selector_selected_pointer_opcode_pathsr  r  5summarize_save_selector_global_selected_pointer_pathsr  r  3summarize_save_selector_opcode08_activation_windowsr  r  5summarize_save_selector_opcode08_unreadable_producersr  r  3summarize_save_selector_opcode09_pointer_collisionsr  r  3summarize_save_selector_selected_root_execution_gapr   r  6summarize_save_selector_route_pair_entry_execution_gapr  r  3summarize_save_selector_route_pair_index_source_gapr)  r*  -summarize_save_selector_secondary_reset_scoper  r  .summarize_save_selector_secondary_block_writesr  r  2summarize_save_selector_secondary_global_reset_gapr  r  2summarize_save_selector_post_gate_reset_candidatesr  r  /summarize_save_selector_branch_gate_consistencyr  r  +summarize_save_selector_gate_offset_sourcesr  r  ,summarize_save_selector_gate_offset_patternsr  r  .summarize_save_selector_selection_buffer_basesr=  r>  ,summarize_save_selector_gate_base_candidatesr  r  *summarize_save_selector_gate_sample_valuesr  r  (summarize_save_selector_gate_pass_matrixr  r  2summarize_save_selector_opcode20_nested_base_modesr  r  -summarize_save_selector_opcode20_slot_sourcesr  r  8summarize_save_selector_opcode20_slot_descriptor_writersr  r  3summarize_save_selector_opcode20_descriptor_scriptsr
  r  7summarize_save_selector_opcode20_object_base_candidatesr  r  5summarize_save_selector_opcode20_sample_order_effectsr  r  ,summarize_save_selector_opcode20_order_spacer  r  3summarize_save_selector_opcode20_context_f2_sourcesr  r  6summarize_save_selector_opcode20_runtime_materializersr  r  +summarize_save_selector_gate_base_proof_gapr  r  -summarize_save_selector_current_state_sourcesrm  rn  #summarize_save_selector_scene_linksr/   r  r  summarize_save_selector_xrefsr  r  $summarize_save_selector_leaf_streamsr  r  %summarize_save_selector_stream_tracesr  r  (summarize_save_selector_leaf_index_spacer  r  4summarize_save_selector_runtime_selector_byte_writesr  r  3summarize_save_selector_current_root_frontier_pathsr  r  $summarize_save_selector_branch_stater  r  ,summarize_save_selector_branch_state_writersr  r  -summarize_save_selector_branch_state_dispatchr  r  3summarize_save_selector_branch_state_opcode_overlaprk  rl  'summarize_save_selector_selection_stater  r   summarize_save_loader_tracer  r  #summarize_runtime_save_path_contextr  r  summarize_script_handler_tabler  r  .summarize_save_selector_dispatch_table_contextr  r  r)  r+  r-  r/  r0   r.  r0  r1  r3  r1   r2  r^  r2   r  r3   r  r*  rc  r  r4   r  r5   r  r6   r  r  __file__resolver  rt  r   r  r  r  r  r   r^   rg   ro   rw   r|   r   r   r   r   r   r  r  r  r  rC  rD  r  r  r   r   r
  r  r$  rR  rZ  rd  rh  r~  r.  __name__r[   r\   r]   <module>r     sS   4 "   	  #  2 O O / 3 Z R ? ` ` I 8 I O F O p p X X b b } F O a 0 U ] d G ) R ] T [ U [ r r h h C C I I e e v v A A z z r r A A b b n n f f o o F M X X K Q \ \ \ \ b h ^ ^ Z ` V V e e l l h h p p ` ` h h d d l l i h t t l l v v q p c i h f l r r j j h h n n v v t t ^ ^ C C A A n n g p Z Z u u : L L H H E E a a T T / / R R V V N D a a [ [ K Q Q W W U U U U _ K K ] ] c c b b _ _ h h b b _ _ ^ N _ _ , V V d d l l e \ b l r c i v v O O ~ ~ | | | | z A m m s s y M M d j _ e l r ~ ~ | | G G D D M M I I G G v v E E r r q q J J O O S S M M Q Q S S H H \ \ H H u u o o s u u ~ ~ B B w w C C w w   y y V V F F C C v v A A t t | | I I q q l F F y y I I ~ ~ I I _ _ [ [ U U U U a a ~ ~   x x | | d d x x | | | | | | ~ ~ L L L L H H L L H H I I O O I I | | } } G G F F A A w w y y } } y y u u r r F F { { R R H H P P L L z z H H N N x x { { ^ ^ g U [ c i e k r r J J H H j j y y | | I I p p X X h h ^ ^ ~ ~ R T J L Q Q T _ V a a 2 2 N N B F J J O O W W O H~''*]"
Ul08R%H "08R%H " 
 0$	%PG
, *       
 
fEPfHV*t$^nI zF r\   