diff --git a/crates/cph-model/src/lib.rs b/crates/cph-model/src/lib.rs index 4eff4d8..4d08155 100644 --- a/crates/cph-model/src/lib.rs +++ b/crates/cph-model/src/lib.rs @@ -176,7 +176,7 @@ fn consume_outline_children( depth, path, } => { - if *depth < minimum_section_depth { + if *depth <= minimum_section_depth { break; } let section_depth = *depth; diff --git a/crates/cph-model/tests/fixtures/nested/manifest.toml b/crates/cph-model/tests/fixtures/nested/manifest.toml index 1b92fda..25e858f 100644 --- a/crates/cph-model/tests/fixtures/nested/manifest.toml +++ b/crates/cph-model/tests/fixtures/nested/manifest.toml @@ -12,5 +12,10 @@ path = "segments/开场白" [[children]] kind = "section" path = "导言簇" +notes = "这里先建立直观图像,再进入分组推导。" + +[[children]] +kind = "section" +path = "收束簇" [targets.student] diff --git a/crates/cph-model/tests/fixtures/nested/收束簇/manifest.toml b/crates/cph-model/tests/fixtures/nested/收束簇/manifest.toml new file mode 100644 index 0000000..97c6dfd --- /dev/null +++ b/crates/cph-model/tests/fixtures/nested/收束簇/manifest.toml @@ -0,0 +1,6 @@ +[group] +title = "收束簇" + +[[children]] +kind = "segment" +path = "segments/总结" diff --git a/crates/cph-model/tests/fixtures/nested/收束簇/segments/总结/element.toml b/crates/cph-model/tests/fixtures/nested/收束簇/segments/总结/element.toml new file mode 100644 index 0000000..d67ae12 --- /dev/null +++ b/crates/cph-model/tests/fixtures/nested/收束簇/segments/总结/element.toml @@ -0,0 +1 @@ +kind = "segment" diff --git a/crates/cph-model/tests/fixtures/nested/收束簇/segments/总结/textbook.typ b/crates/cph-model/tests/fixtures/nested/收束簇/segments/总结/textbook.typ new file mode 100644 index 0000000..8e38b02 --- /dev/null +++ b/crates/cph-model/tests/fixtures/nested/收束簇/segments/总结/textbook.typ @@ -0,0 +1 @@ +总结 diff --git a/crates/cph-model/tests/load.rs b/crates/cph-model/tests/load.rs index 5024c5c..b635d57 100644 --- a/crates/cph-model/tests/load.rs +++ b/crates/cph-model/tests/load.rs @@ -121,6 +121,7 @@ fn nested_sections_flatten_depth_first_with_correct_depths() { PathBuf::from("导言簇/segments/子段一"), PathBuf::from("导言簇/嵌套子节/lemmas/子引理"), PathBuf::from("导言簇/segments/子段二"), + PathBuf::from("收束簇/segments/总结"), ], "root-relative paths must accumulate through every nesting level" ); @@ -139,7 +140,7 @@ fn nested_sections_flatten_depth_first_with_correct_depths() { kind: "section".to_string(), title: "导言簇".to_string(), depth: 1, - notes: None, + notes: Some("这里先建立直观图像,再进入分组推导。".to_string()), path: PathBuf::from("导言簇"), }, OutlineEntry::Element { @@ -161,8 +162,25 @@ fn nested_sections_flatten_depth_first_with_correct_depths() { part_index: 3, depth: 1, }, // 导言簇/segments/子段二 + OutlineEntry::Section { + kind: "section".to_string(), + title: "收束簇".to_string(), + depth: 1, + notes: None, + path: PathBuf::from("收束簇"), + }, + OutlineEntry::Element { + part_index: 4, + depth: 1, + }, // 收束簇/segments/总结 ] ); + let document = lesson.outline_document(); + assert_eq!(document.children.len(), 3); + assert_eq!(document.children[1].title, "导言簇"); + assert_eq!(document.children[1].children.len(), 3); + assert_eq!(document.children[2].title, "收束簇"); + assert_eq!(document.children[2].children[0].title, "总结"); // The outer section declares [group].title = "导言簇"; the inner section // has no [group] at all, so its title falls back to the folder basename. diff --git a/crates/cph-typst/src/embedded.rs b/crates/cph-typst/src/embedded.rs index 6236d58..1db9506 100644 --- a/crates/cph-typst/src/embedded.rs +++ b/crates/cph-typst/src/embedded.rs @@ -60,7 +60,7 @@ pub fn resolve_render_dir() -> PathBuf { /// Bump when the embedded render package changes without a cph crate-version /// bump. Otherwise a user's old per-version cache can miss newly added package /// functions (such as `render-outline`). -const RENDER_CACHE_REVISION: &str = "outline-v1"; +const RENDER_CACHE_REVISION: &str = "outline-v2"; /// The version/revision-keyed cache location and a guarantee the embedded tree /// is present there. Returns the directory the World should use. diff --git a/examples/TH-141/manifest.toml b/examples/TH-141/manifest.toml index c6b85d3..7e9b154 100644 --- a/examples/TH-141/manifest.toml +++ b/examples/TH-141/manifest.toml @@ -21,22 +21,27 @@ path = "segments/液面拉伸的本质" [[children]] kind = "section" path = "液气界面" +notes = "先从液面拉伸的宏观图像切入,再用缺键模型和 LJ 对势逐步建立微观解释;可补充一个数量级估算例题。" [[children]] kind = "section" path = "固气界面" +notes = "把液体表面能与固体表面应力放在同一张对照表中,强调固体表面能的晶面各向异性。" [[children]] kind = "section" path = "固液界面" +notes = "围绕界面能的物理图像,串起 Dupré、Girifalco-Good、Fowkes 与 Young 方程;可安排一个浸润判据例题。" [[children]] kind = "section" path = "σTp态函数建模" +notes = "这一节是温度依赖建模主线,先回顾 σT,再解释微观模型和经验规则之间的联系;进阶学生可比较不同模型的适用范围。" [[children]] kind = "section" path = "收束" +notes = "最后对照各模型对水的预测,回收本节主线,并明确为什么实际数值可能算不准。" # Export targets (ADR-0009/0011): each target is a build producing a typed # artifact, run as an ordered list of typed steps. A `typst-compile` step names a diff --git a/examples/TH-141/outline.pdf b/examples/TH-141/outline.pdf deleted file mode 100644 index 3558e6c..0000000 --- a/examples/TH-141/outline.pdf +++ /dev/null @@ -1,1066 +0,0 @@ -%PDF-1.7 -% - -1 0 obj -<> -endobj -2 0 obj -</Dest 144 0 R>> -endobj -3 0 obj -</Dest 145 0 R>> -endobj -4 0 obj -</Dest 146 0 R>> -endobj -5 0 obj -</Dest 147 0 R>> -endobj -6 0 obj -</Dest 148 0 R>> -endobj -7 0 obj -</Dest 149 0 R>> -endobj -8 0 obj -</Dest 150 0 R>> -endobj -9 0 obj -</Dest 151 0 R>> -endobj -10 0 obj -</Dest 152 0 R>> -endobj -11 0 obj -</Dest 153 0 R>> -endobj -12 0 obj -</Dest 154 0 R>> -endobj -13 0 obj -</Dest 155 0 R>> -endobj -14 0 obj -</Dest 156 0 R>> -endobj -15 0 obj -</Dest 157 0 R>> -endobj -16 0 obj -</Dest 158 0 R>> -endobj -17 0 obj -</Dest 159 0 R>> -endobj -18 0 obj -</Dest 160 0 R>> -endobj -19 0 obj -</Dest 161 0 R>> -endobj -20 0 obj -</Dest 162 0 R>> -endobj -21 0 obj -</Dest 163 0 R>> -endobj -22 0 obj -</Dest 164 0 R>> -endobj -23 0 obj -</Dest 165 0 R>> -endobj -24 0 obj -</Dest 166 0 R>> -endobj -25 0 obj -</Dest 167 0 R>> -endobj -26 0 obj -</Dest 168 0 R>> -endobj -27 0 obj -</Dest 169 0 R>> -endobj -28 0 obj -</Dest 170 0 R>> -endobj -29 0 obj -</Dest 171 0 R>> -endobj -30 0 obj -</Dest 172 0 R>> -endobj -31 0 obj -</Dest 173 0 R>> -endobj -32 0 obj -</Dest 174 0 R>> -endobj -33 0 obj -</Dest 175 0 R>> -endobj -34 0 obj -</Dest 176 0 R>> -endobj -35 0 obj -</Dest 177 0 R>> -endobj -36 0 obj -</Dest 178 0 R>> -endobj -37 0 obj -</Dest 179 0 R>> -endobj -38 0 obj -</Dest 180 0 R>> -endobj -39 0 obj -</Dest 181 0 R>> -endobj -40 0 obj -</Dest 182 0 R>> -endobj -41 0 obj -</Dest 183 0 R>> -endobj -42 0 obj -</Dest 184 0 R>> -endobj -43 0 obj -</Dest 185 0 R>> -endobj -44 0 obj -</Dest 186 0 R>> -endobj -45 0 obj -</Dest 187 0 R>> -endobj -46 0 obj -<> -endobj -47 0 obj -<>/K[142 0 R]/ParentTree<>/ParentTreeNextKey 3>> -endobj -48 0 obj -[51 0 R 51 0 R 52 0 R 53 0 R 54 0 R 54 0 R 55 0 R 56 0 R 56 0 R 57 0 R 58 0 R 58 0 R 59 0 R 60 0 R 60 0 R 61 0 R 62 0 R 62 0 R 63 0 R 64 0 R 64 0 R 65 0 R 66 0 R 66 0 R 67 0 R 68 0 R 68 0 R 69 0 R 70 0 R 70 0 R 71 0 R 72 0 R 72 0 R 73 0 R 74 0 R 74 0 R 74 0 R 75 0 R 76 0 R 76 0 R 76 0 R 76 0 R 77 0 R 78 0 R 78 0 R 78 0 R 79 0 R] -endobj -49 0 obj -[80 0 R 80 0 R 80 0 R 81 0 R 82 0 R 82 0 R 83 0 R 84 0 R 84 0 R 85 0 R 86 0 R 86 0 R 86 0 R 86 0 R 86 0 R 87 0 R 88 0 R 88 0 R 89 0 R 90 0 R 90 0 R 91 0 R 92 0 R 92 0 R 93 0 R 94 0 R 94 0 R 94 0 R 94 0 R 95 0 R 96 0 R 96 0 R 97 0 R 98 0 R 98 0 R 99 0 R 100 0 R 100 0 R 101 0 R 102 0 R 102 0 R 102 0 R 103 0 R 104 0 R 104 0 R 104 0 R 105 0 R 106 0 R 106 0 R 106 0 R 107 0 R 108 0 R 108 0 R 109 0 R 110 0 R 110 0 R 110 0 R 111 0 R] -endobj -50 0 obj -[112 0 R 112 0 R 112 0 R 113 0 R 114 0 R 114 0 R 115 0 R 116 0 R 116 0 R 116 0 R 116 0 R 117 0 R 118 0 R 118 0 R 118 0 R 118 0 R 119 0 R 120 0 R 120 0 R 120 0 R 120 0 R 121 0 R 122 0 R 122 0 R 122 0 R 123 0 R 124 0 R 124 0 R 124 0 R 125 0 R 126 0 R 126 0 R 127 0 R 128 0 R 128 0 R 128 0 R 128 0 R 129 0 R 130 0 R 130 0 R 130 0 R 131 0 R 132 0 R 132 0 R 133 0 R 134 0 R 134 0 R 135 0 R 136 0 R 136 0 R 137 0 R 138 0 R 138 0 R 139 0 R 140 0 R 140 0 R 141 0 R] -endobj -51 0 obj -<> -endobj -52 0 obj -<> -endobj -53 0 obj -<> -endobj -54 0 obj -</K[4 5]/Pg 197 0 R>> -endobj -55 0 obj -<>]/K[6]/Pg 197 0 R>> -endobj -56 0 obj -</K[7 8]/Pg 197 0 R>> -endobj -57 0 obj -<>]/K[9]/Pg 197 0 R>> -endobj -58 0 obj -</K[10 11]/Pg 197 0 R>> -endobj -59 0 obj -<>]/K[12]/Pg 197 0 R>> -endobj -60 0 obj -</K[13 14]/Pg 197 0 R>> -endobj -61 0 obj -<>]/K[15]/Pg 197 0 R>> -endobj -62 0 obj -</K[16 17]/Pg 197 0 R>> -endobj -63 0 obj -<>]/K[18]/Pg 197 0 R>> -endobj -64 0 obj -</K[19 20]/Pg 197 0 R>> -endobj -65 0 obj -<>]/K[21]/Pg 197 0 R>> -endobj -66 0 obj -</K[22 23]/Pg 197 0 R>> -endobj -67 0 obj -<>]/K[24]/Pg 197 0 R>> -endobj -68 0 obj -</K[25 26]/Pg 197 0 R>> -endobj -69 0 obj -<>]/K[27]/Pg 197 0 R>> -endobj -70 0 obj -</K[28 29]/Pg 197 0 R>> -endobj -71 0 obj -<>]/K[30]/Pg 197 0 R>> -endobj -72 0 obj -</K[31 32]/Pg 197 0 R>> -endobj -73 0 obj -<>]/K[33]/Pg 197 0 R>> -endobj -74 0 obj -</K[34 35 36]/Pg 197 0 R>> -endobj -75 0 obj -<>]/K[37]/Pg 197 0 R>> -endobj -76 0 obj -</K[38 39 40 41]/Pg 197 0 R>> -endobj -77 0 obj -<>]/K[42]/Pg 197 0 R>> -endobj -78 0 obj -</K[43 44 45]/Pg 197 0 R>> -endobj -79 0 obj -<>]/K[46]/Pg 197 0 R>> -endobj -80 0 obj -</K[0 1 2]/Pg 198 0 R>> -endobj -81 0 obj -<>]/K[3]/Pg 198 0 R>> -endobj -82 0 obj -</K[4 5]/Pg 198 0 R>> -endobj -83 0 obj -<>]/K[6]/Pg 198 0 R>> -endobj -84 0 obj -</K[7 8]/Pg 198 0 R>> -endobj -85 0 obj -<>]/K[9]/Pg 198 0 R>> -endobj -86 0 obj -</K[10 11 12 13 14]/Pg 198 0 R>> -endobj -87 0 obj -<>]/K[15]/Pg 198 0 R>> -endobj -88 0 obj -</K[16 17]/Pg 198 0 R>> -endobj -89 0 obj -<>]/K[18]/Pg 198 0 R>> -endobj -90 0 obj -</K[19 20]/Pg 198 0 R>> -endobj -91 0 obj -<>]/K[21]/Pg 198 0 R>> -endobj -92 0 obj -</K[22 23]/Pg 198 0 R>> -endobj -93 0 obj -<>]/K[24]/Pg 198 0 R>> -endobj -94 0 obj -</K[25 26 27 28]/Pg 198 0 R>> -endobj -95 0 obj -<>]/K[29]/Pg 198 0 R>> -endobj -96 0 obj -</K[30 31]/Pg 198 0 R>> -endobj -97 0 obj -<>]/K[32]/Pg 198 0 R>> -endobj -98 0 obj -</K[33 34]/Pg 198 0 R>> -endobj -99 0 obj -<>]/K[35]/Pg 198 0 R>> -endobj -100 0 obj -</K[36 37]/Pg 198 0 R>> -endobj -101 0 obj -<>]/K[38]/Pg 198 0 R>> -endobj -102 0 obj -</K[39 40 41]/Pg 198 0 R>> -endobj -103 0 obj -<>]/K[42]/Pg 198 0 R>> -endobj -104 0 obj -</K[43 44 45]/Pg 198 0 R>> -endobj -105 0 obj -<>]/K[46]/Pg 198 0 R>> -endobj -106 0 obj -</K[47 48 49]/Pg 198 0 R>> -endobj -107 0 obj -<>]/K[50]/Pg 198 0 R>> -endobj -108 0 obj -</K[51 52]/Pg 198 0 R>> -endobj -109 0 obj -<>]/K[53]/Pg 198 0 R>> -endobj -110 0 obj -</K[54 55 56]/Pg 198 0 R>> -endobj -111 0 obj -<>]/K[57]/Pg 198 0 R>> -endobj -112 0 obj -</K[0 1 2]/Pg 199 0 R>> -endobj -113 0 obj -<>]/K[3]/Pg 199 0 R>> -endobj -114 0 obj -</K[4 5]/Pg 199 0 R>> -endobj -115 0 obj -<>]/K[6]/Pg 199 0 R>> -endobj -116 0 obj -</K[7 8 9 10]/Pg 199 0 R>> -endobj -117 0 obj -<>]/K[11]/Pg 199 0 R>> -endobj -118 0 obj -</K[12 13 14 15]/Pg 199 0 R>> -endobj -119 0 obj -<>]/K[16]/Pg 199 0 R>> -endobj -120 0 obj -</K[17 18 19 20]/Pg 199 0 R>> -endobj -121 0 obj -<>]/K[21]/Pg 199 0 R>> -endobj -122 0 obj -</K[22 23 24]/Pg 199 0 R>> -endobj -123 0 obj -<>]/K[25]/Pg 199 0 R>> -endobj -124 0 obj -</K[26 27 28]/Pg 199 0 R>> -endobj -125 0 obj -<>]/K[29]/Pg 199 0 R>> -endobj -126 0 obj -</K[30 31]/Pg 199 0 R>> -endobj -127 0 obj -<>]/K[32]/Pg 199 0 R>> -endobj -128 0 obj -</K[33 34 35 36]/Pg 199 0 R>> -endobj -129 0 obj -<>]/K[37]/Pg 199 0 R>> -endobj -130 0 obj -</K[38 39 40]/Pg 199 0 R>> -endobj -131 0 obj -<>]/K[41]/Pg 199 0 R>> -endobj -132 0 obj -</K[42 43]/Pg 199 0 R>> -endobj -133 0 obj -<>]/K[44]/Pg 199 0 R>> -endobj -134 0 obj -</K[45 46]/Pg 199 0 R>> -endobj -135 0 obj -<>]/K[47]/Pg 199 0 R>> -endobj -136 0 obj -</K[48 49]/Pg 199 0 R>> -endobj -137 0 obj -<>]/K[50]/Pg 199 0 R>> -endobj -138 0 obj -</K[51 52]/Pg 199 0 R>> -endobj -139 0 obj -<>]/K[53]/Pg 199 0 R>> -endobj -140 0 obj -</K[54 55]/Pg 199 0 R>> -endobj -141 0 obj -<>]/K[56]/Pg 199 0 R>> -endobj -142 0 obj -<> -endobj -143 0 obj -[/ICCBased 209 0 R] -endobj -144 0 obj -[197 0 R/XYZ 62.362206 702.52026 0] -endobj -145 0 obj -[197 0 R/XYZ 62.362206 650.6449 0] -endobj -146 0 obj -[197 0 R/XYZ 62.362206 598.7695 0] -endobj -147 0 obj -[197 0 R/XYZ 62.362206 499.33868 0] -endobj -148 0 obj -[197 0 R/XYZ 62.362206 453.54248 0] -endobj -149 0 obj -[197 0 R/XYZ 62.362206 407.74628 0] -endobj -150 0 obj -[197 0 R/XYZ 62.362206 361.95007 0] -endobj -151 0 obj -[197 0 R/XYZ 62.362206 316.15387 0] -endobj -152 0 obj -[197 0 R/XYZ 62.362206 270.35767 0] -endobj -153 0 obj -[197 0 R/XYZ 62.362206 224.56146 0] -endobj -154 0 obj -[197 0 R/XYZ 62.362206 178.76526 0] -endobj -155 0 obj -[197 0 R/XYZ 62.362206 132.96906 0] -endobj -156 0 obj -[198 0 R/XYZ 62.362206 783.8583 0] -endobj -157 0 obj -[198 0 R/XYZ 62.362206 692.26587 0] -endobj -158 0 obj -[198 0 R/XYZ 62.362206 648.2289 0] -endobj -159 0 obj -[198 0 R/XYZ 62.362206 604.1919 0] -endobj -160 0 obj -[198 0 R/XYZ 62.362206 560.1549 0] -endobj -161 0 obj -[198 0 R/XYZ 62.362206 516.1179 0] -endobj -162 0 obj -[198 0 R/XYZ 62.362206 472.08087 0] -endobj -163 0 obj -[198 0 R/XYZ 62.362206 384.00687 0] -endobj -164 0 obj -[198 0 R/XYZ 62.362206 339.96988 0] -endobj -165 0 obj -[198 0 R/XYZ 62.362206 295.93286 0] -endobj -166 0 obj -[198 0 R/XYZ 62.362206 251.89587 0] -endobj -167 0 obj -[198 0 R/XYZ 62.362206 207.85889 0] -endobj -168 0 obj -[198 0 R/XYZ 62.362206 163.8219 0] -endobj -169 0 obj -[198 0 R/XYZ 62.362206 119.78485 0] -endobj -170 0 obj -[199 0 R/XYZ 62.362206 783.8583 0] -endobj -171 0 obj -[199 0 R/XYZ 62.362206 739.8213 0] -endobj -172 0 obj -[199 0 R/XYZ 62.362206 651.74725 0] -endobj -173 0 obj -[199 0 R/XYZ 62.362206 607.71027 0] -endobj -174 0 obj -[199 0 R/XYZ 62.362206 563.6733 0] -endobj -175 0 obj -[199 0 R/XYZ 62.362206 519.6362 0] -endobj -176 0 obj -[199 0 R/XYZ 62.362206 475.59927 0] -endobj -177 0 obj -[199 0 R/XYZ 62.362206 431.5623 0] -endobj -178 0 obj -[199 0 R/XYZ 62.362206 387.52527 0] -endobj -179 0 obj -[199 0 R/XYZ 62.362206 343.48828 0] -endobj -180 0 obj -[199 0 R/XYZ 62.362206 255.41425 0] -endobj -181 0 obj -[199 0 R/XYZ 62.362206 211.37726 0] -endobj -182 0 obj -[199 0 R/XYZ 62.362206 167.34027 0] -endobj -183 0 obj -[199 0 R/XYZ 62.362206 299.4513 0] -endobj -184 0 obj -[199 0 R/XYZ 62.362206 695.7843 0] -endobj -185 0 obj -[198 0 R/XYZ 62.362206 428.04388 0] -endobj -186 0 obj -[198 0 R/XYZ 62.362206 738.0621 0] -endobj -187 0 obj -[197 0 R/XYZ 62.362206 546.89404 0] -endobj -188 0 obj -<>/Font<>>> -endobj -189 0 obj -<>/Font<>>> -endobj -190 0 obj -<>/Font<>>> -endobj -191 0 obj -<> -endobj -192 0 obj -<>/FontDescriptor 193 0 R/DW 0/W[0 0 1000 1 1 625 2 2 757 3 3 370 4 5 590 6 6 325 7 41 1000 42 42 325 43 43 590 44 50 1000 51 51 590 52 59 1000 60 60 590 61 63 1000 64 64 590 65 67 1000 68 68 590 69 69 624 70 70 421 71 71 581 72 72 372 73 73 591 74 74 641 75 77 1000 78 78 590 79 83 1000 84 84 510.99997 85 87 1000 88 88 590 89 89 578 90 90 568 91 91 1000 92 92 590 93 97 1000 98 98 589 99 115 1000 116 116 714 117 117 637 118 118 644 119 119 436 120 120 581 121 122 1000 123 123 717 124 124 304 125 125 315 126 126 527 127 127 626 128 128 644 129 129 585 130 130 863 131 131 604 132 132 495 133 137 1000 138 138 580 139 139 597 140 140 1000 141 141 613 142 149 1000 150 150 642 151 151 227 152 155 1000 156 156 964 157 157 1000 158 158 615 159 159 626 160 160 576 161 162 1000 163 163 640 164 164 686 165 165 574 166 186 1000]>> -endobj -193 0 obj -<> -endobj -194 0 obj -<> -endobj -195 0 obj -<>/FontDescriptor 196 0 R/DW 0/W[0 10 1000 11 11 473 12 12 547 13 13 566 14 14 974 15 15 661 16 16 367 17 17 538 18 18 332 19 19 596 20 20 334 21 21 557 22 22 564 23 23 638 24 24 471 25 25 256 26 26 352 27 27 557 28 28 558]>> -endobj -196 0 obj -<> -endobj -197 0 obj -<> -endobj -198 0 obj -<> -endobj -199 0 obj -<> -endobj -200 0 obj -<> -stream -x+x* -endstream -endobj -201 0 obj -<> -stream -xmˎ9 E -@ȴJo"uUc ]6XK'AER<$Lo;V_zz=vחy|inx:Ee:ͷ=RsP|9zǤy/J]̧Wj?Pp՝PwO|QOe:':"{y<r<ŮzJ)ue~ޟ/W{ +N|/-_T#/ -~8w~8L7C4<ϫZoզֶNk|iw[ڻ-[-`Y˱e;X|`Xq6)9%m&``f4BVݪM IjFa tNH; -e:Ⳅv[#>%|m.DXka1_B|nLF|I:7 >N ňE|>&|F ">7jDm/ 6L/k皅*B4_ }U E;H,ħ[5/|cC u`/, --Ӣ&,Gv-7J&,g^,񅘡eEb!ؤB,e/[g$ 5qHl<8ϬqࡃCE:CEhOii-U_#_ yqkǩcb'+_HW=F-߁/"|kB>Ig>=$K$;7d0p}@|I7(x~ڊ8!˘Of)>7&[ܘ$cnF@ ɃiD:9<[F)šFc" P#V-!(܈R`(܈";_]Dj#7f/> -stream -xtXɻ>0Lw0ʴ `9GT0!I@rNP"i9'05iu95=~a=ϭꪯTWW}~oI $ (0,pk@yC݆L so-nI*DeNJ7fWYXdFzzOMqHq}Xť5=p\w0ﰨAQ!ޞ^aìmF f= ‚ i.r :ʲޡa!!,gzyX pǐk]B!nK\w@ mH`P`Hw`DI:4%1ύw9Shl$~@f%1F?^}ZXhlKJƦ0.I9i,:Ayq#i&ZFГHqqz??Y߿oG[?iKO-z3HCg9&'%%ϫzzzy3W!OqvBT/- --.V=kCvzazzz$}$^rp{L*&\GCaѹA~͸Q޽NKL妮e|K]P%krQYfI&wn:vѽczV:ǼOxWyAj7x!UVN`}avxG:qQ]G=wLإz1^&NaҙL2M2-zz3;kK5s57fyjA҂ p¤-ھbs[RaeW,BUWXPFFp:u6r]\\K_ wי{y7o> -:2..6̌Oh?<_uBm m [,MqLۉ:rhlZ=!6k=D1sN؆NlF)6wA :?ɉ-tFs9ϻ?nn6Q3U3r:د(G¯T'$X +ƤJH¬_~J7:O'D]g]vO`0\K3*MebAN}vl/ys9M;a&A- ΜuoX}}j]'SuGΨ :*y.L8L(jNCݣ ?[%&-Gkk;:Q?ԔW+,)|dљ W7XyoCpS u>+i|Hn4zϗS`4,әA 3b/"j朦|nQ|'w;~3$ VЃRqnBV &,YQdD}v6.wRrx)~&{CƴmlsAbpA/0{`Rc\{M{Rp6v(MYϮޅo[4[H 60'n!&ۘhMv$sI{YλN<\rOҊ/#ەTdNTttK,϶B*~M(yfW%9)r]gҲ4hqe t@?v`t>1}FSb\d>Cz 'b:JD:]BT 7HqsȕvEIxc?*1&3Ρ@"Imadw:;>ˉ5-I)m:A9b.9#!\7n|<_3F}-H0z)d|X!O?T0VI4,CC#S'Kryq8b6Br9S]eg.qe6ѷ8ni8i|uO]>?켔XaqJQ)*.Ӓ̩I?֘r#tEM#:cUAX}F't@'>ھB}*=ʼn]b|'z,mmʵ|QTN:frfb.L̛> -!\olR(F.N^}L~NDAoAՀ|l.#Xdw$;;9= 3^604xqAшk9Rr[k!Cp;V,0iN9\T' Oq~2}l -hv f3%ޣ?HG~T/X:w`75b/|՛Cݨ S4]nFg!Dk ?iy=yq$3")I=f`xAkA3AJI -}ٗ?FVzbG)0,u=& ?cFJף#/j -]_aͪ1n&Mb~VVb|>;8ud12% y2J8z^N4MZfG/X2񄹪I*`ۿ*;([Dbay_ &^{mU jjeׅWeŔ -c&o\1nRTrCWIaZA߇+++zܑ,ۋU?|?Y/G^b&M FtBRL;NUO~z2'/lv 4 q B`i-vb&g|V> -zb煁y` B/NJC[d|G,2k3J+ G8P8I.\c6QGj_nPFOwYNȚ -@.!k_mڴ="+y:/!ٻ%1xoŞ蒍wܮ$s<FPoT$CdSpGȺ_P@'^ FBZ MZ~>xUNwpa友/'LQKk4~|xkCcʀ?pJ yH J㣦th^}Ա_oPO,V[w/Sexj7V]Zu\\ %BY9Y_({kϊ_`e0aJG CId-f94g]3/o9 [? -½g eعO^o| -jeÅrc[[2=d -,XzQ׮!?׊d-p 67p]JPIG58Ƣ[˱ٟ9%ۂ7olٲ3";y:#[sbSr]yr -]>Ea|̇k -QSa -WܛY7e`1zh4a[BI25|7[3J~48BJtB*+^(%b VZp(z5}P{uHo2iE&Dm]3PD׹:WFnW?Q0Ǡ Ş-ma# 651۬ 1,]38u>>y'߆=3MPi@ɶ"PB˟|5\&00| -#A qǒƒ&!c*x/7t@a(-gb6bW'NO_ǏsrWV:Psf8] #jU_c^-t`x "ILG1494{ -Qd'Boz -LoAFtʄ'=ԉ>8tSM HCz"34tl yLеA+ dz`s0),-`HV CUޯI0,o򎜟k۞J5mmz *S5ZYQ/M7Ə'19%B_ -ŹgW62͜E}rC`V!ap?eU[@3"3y:u_._ngYibGx|JW6]fyͱAu~]KS^SAC+;L[h[ljL[JMɸʨbJzPWQc9rf5펛C=1A!!)ܹ-`TZedrr__vn` CwHIOŃbT`]?]4fJ,2å`΃[ -k.Ne7u $=G}an@0uH;:h30W/7{I yD78g}8{䷌߹dn/d^0Ӿ%7a2̀[tD_3h`HrANjV"϶uV0=#~GٶHAԉt:VvƳ+Tp v)P$'i U^dWZgUXϮ -ͬrvKk86Aח;hRʏo֬管G -am8x!;&nn9,VHvΝ[U[#",RBS%sGʓ -quYq뷪2Brчt{?J7ꋸeWdQ/F2e9QrY6A=ȶͣ;mB V9+f-o-7'ܯ-)ҷf -1Ʒ` {RO2ߋR遧)Fxyy;z>5;%'%0fF8ߘBn뀟?..r{o] 9o&u8)/St`?!2rp( 30̗MG/?fFi lLk0H>—p2m2R:nr乵X|yq۷oTmLJޕ'jbr W9Tr;űaK_r,gHO0 -FTY| ؐK08 e\ #R0h #!Kz ֤z`XZ%[#6 +HemP17?/?(ӥakT@U[? W  cN1%K? 9w4bx@u&$Gd889ǟ'՗T,x$wwzVWyT6>辠Q3r|/-0IAAP@ -%^|Dxˮ?|YI*97a2;70SUZMP}0-gc. 5C7euf߃)d yC=46Q-KC`*?ퟷ؃ 6C?0 '?Nr&P?o.j xYͫlAXkJ0lbQ&;Js")"C;MMz b'(䴙x6': -#&"1vúX;*0FZ>*C` R;VI?ɑԣɼҘ3y_Q9w0@>N:[Laiǡ:@{yg:8ӿ$*b~bV&"ʷ??}СsaR 4ߐ)0}:MgpgfNo#ju -SdOy])n)Y̋`83ca} -QJޏj9/v^(\UZV17正FST  wX_;]'$NCE܊N4Z=C an3;},od 5GXܬwF,hZggt -(!9wo-_:< wrP\^8sYN!.cf[and*+%- &O ƺEGnؤJr]߷d&PšD -wGL_-ۜeOYM_q`c~2uz윅nSOs̎tJ ȉ mVXQZ}4?Ƕu[L *?b&¡.DPe7,>3dTئdeefs7ٜ*Mef%7`x#h Mj{L{3 -q90 i V_k])q -vH,e4Ȇ%@ZML]eS/OZ^r$gGUW]a>d!5_##(.;Ye(T#5zs[~ll -眙tl1M_PQx֦ͯy ?yZ3:&r5IeTN Dp0;E{JR7h C})E8~+X8viG8#OSp)Y=ta\%lߐڰ,i:-8m?wlrz6pisт%S *uJFׯ7?N?MBa&L7z˜pГFRO!2AgJK0]'@+;vuE< ª4;OsSφx2j ɴ:_}կ 'GgFg(Yo0QCg s(pI эcs>2 mټeG>>I{/9Ӓɝ^& c+8BK -ۻ?Se5]x`~Ok /ֲqv$ uN\7eFg,+,ܭRurK*/)!`1 -F Z+A@ao%k-#ڲL#m E4V E^FtCtAc]\KW+ЌCm|d\\')ZJ^:7b^L٦dH]FŘ❐~`Cm ޖe700մF)>\ H1͏-]l۹v.ON*#YW4ʸK54lNMHuIJL_7km٥PWf*=mMԕS ;bWwg=IOy\REDGDlK ĕ/Tϭ\5wغ1ns9Dp#VW_>-ݳ23w_uQ%hPAK"N KFP{RRشi~Hy} \66YN㝱r;/$USRPUGNr٬<"tb/4V`1 $i#:R-d?U'rk.` n#z00E}^)Ǻ:Q3/Y r֟łYE)g)}S|4ʨI_5s5PAF*52Lϡ L G濎:9y99En/vM.ƶvtr-i_ZNa:R\ɔ\ّf`:(r׀ί=JƉ9>@ЗβN>aTv -j~ ֟ZgR | ]d툁) -+ES#orR/C_4}m~i'F ]\oԑ؟M&k_aޒ]h7os+dde?_Y'~-}%Je+zyVƣ*3[JI#zbgN 2$ ,4VLa#ki;S3W>^U^R7¬Ϯ00 RTfn -ә[7Y0yZmӉoG?ppl=Лe>$=~Sm| -9oMlȴC#â㸧7 -2K9Iyr.V uY8'beJJkmwy`4]6"Z*sI -tω9x%zcj̹9vNs׭^|nBÙEͩNw%ZArOdd?U씭gjվ.~'V?]C!¾}W=dlYﰹ`sֲ)sX'}=g\svBDAz%ujw˩0t&>1) <5=^3R_> , N_}FwtFF?)JcXk޷;x[l: 62䢓Β$uYCO:az Cdv9B>|?Ы8*ojJTXQeLE_C ,&R:-u -,5aTnOؐ]Efw Ju~jjޒ7*h9~zXfiesQ<͒Uz^ӻ(f*#wS[ Gg5[iN=H=Hoty9/FsH?*=cg/~iK8}cPկhBYVX3 -QKX܆%WN $NN!36P8800`+1T>%/em!Cq'CȿC'0uC3i>N%A #,-D,#(`構KZ&̭?ZcFØg%$mBKf`Lٖod-C0F$(q^-\B`$9sD\Xo0ÆݦNkZƂWYi - (TD<ڂPw2JXII\MSnŕ#nm,[,b%_~}s;HB@TA I/OAOCV&ZHw,wl7?roX cq(|Lh3fkʴ^22jj8o3\|ۆ/]]Vɯ $ѹ._ ,>Lq aYZj@\/q3W҅PMX}xQn&pd%ا,yC ʔŔŖo(8R;3cfJccnF/QzX0~ K7}dlɏ-%c?}mt?lmF0[֥ep4dŎdƺvM<R+'ͮ&')NkUI^Ѿflffl&p}&2;*7ӱL&;+3ke]e]T`L:.:K=h C)C%?caWcL &l/Ԩ:m~ͨ8B5l=[)9^|@_)jbuCɶme*|Rc4hVI.:3|x,ޣ#hwc֛gիBֺ9Y^|=ia=dEfԙd4BNبH¯OVND`nїo*m:[mmY٩y,Z]v)gE<к=8{ _ӷ)ӯaG{".te0X޾uBG,WהUO䞑@&as]_^^qf~jTn͍-)x%QwJcEBvˋ)!%5y 1hmOǔs6FrPtfff#=M:V$ =źAl1 vIλ3I<&L)>o.b\YszϷ_)0&`r% Jn+"A\Nm; ĥ^S[ݧ6e>m'/p0+⛻aC3s}u]t\L[a 4h -` ky -p S ,]17JƧf+*aؗNOl кX  -\OHۤטyM5 c.99i&;4'(-]S,h?]` cKtX㲋j1{ǪZ.2ԕ!xbòkU ,t璅͉2Tfq0lIe?V,vv\⟺#a]s+oֶM2@%_ -・7 -dZCcS-!T(6ng}y︞XyOҊ#9C!+#:\7Saw='n(ZS1Ln ?"ҝ &@ -p3 `Ϋ:. '7Rr6L 5)5'+onlWκ!S١9)art*xïfkzIeK~ Z8kwN?<}EQ --W=,<}&w ƢQ@wxPw|Yϯ-. l y˧ lQFN~T?f "Kӣ - K8pta Fq1Lb@j]O2{Җvrex*Jn&:,0y7A[em [N9L$pSLLw[41s i?re~L3!J Ӱ'iKz*=Dv_78G/CóO?<}DiE'QAwl,Hzau9 #/*qY50սN h4Þo4D6 DvCSA.I ΈR{V'PA餌YE`0L|6BG9z]].g._˽…@ Vh c]QKk9>{(4 w~y5)b(0?*42i 2 9| i rI|og) -R_pR7SagN%zf,M՝W;$ 02IL#ERN⡀d@I;NR(I;Np^cHl)Y9KT;Yq?g)cLLH%@,8+8DЧLdt:qDn`c^iz0/,Ox:Y_yS'WyZnnkmFy~o,:kH {c j1>^\N8~囅?)0n -8(0 ^aLӬ+rt.A0xђ޹[CRnv;oʇvC t/V^ӏAn{wGh,76`y)^Mܫӱ`Dk̩|Ewo `@*=)͇|VLrjR48A4:k0 -<إ+WZZX3Z>~}?Ox^[܎9m͍"Ga]|eH[)^⇄_5lu6%FZO޻HKU{w(.(z]I7s̕i.,/ ɋJ^Rw>_(;Ce08 -޿.3\-ݑg Xy@Mg22;ldd2fGJ 2ˎN3<&GgYB\79'%\sZveT22DXv);!,;:? -F;nHKS@[ ą0`B/4'CcWGN7h˕$+gƵD:d:R皸Mᕾ|wum.gy+m8#*ZMjc`u]2=ǯdyO{Es:+t""4+UTe\ Y^)b5+Ǭϯ~ -Rt5dXCEk(% ql5nCYp)F)he<"r^ -V1UZ̦F8z&8`THr^W$7+(oIYw/]:rJ2"AFs81e34d#+U!Qs{1Z 9즲تbNէJӐ W;G#΅ -7dyDZ:h#G/0ޅm n6cV>[}zwÿ(AC#2D|'h.,Y}[b 9;Tq5kq*c2װC[ XBJp7;Co2,?aT`Bg&4}߈iI1V/O -^Uܫfoi;{F  @,zW"My=z}8hB ۢ"$E[xl[~>/~_}Bؖ?j_ 4*/zFefp?ۤ;^Cy\ fz 1 ŚHЇρ79 -\k| -q2,zSE$caoCe0OK 栒O z`@n`%ǵ_Ǒ&euV!J_2c& 7lH [r;nlszocE0.D +cW)B7xx%L<Y )b@z-[3eK!^ -$^Vʕ1֡92>!?3ś Pm6zJ6̍T$ad_EX_Ǒ_dEr ésrMFh ' WC;@θn7x geĵlop1-dIZR%[@V]t` 7i8G/&Y,޴\,U zJep $n C]YO\vq͹Uk[tֶ z0ЛLOE,ekFE1ǝ0뽺¥rL>nA#`gί>Jc3n,ms32vi'N:'7r4:2!L,dImZXJ(]a=SPxQQdk(tUIhnsØs$9Tnbs$A9bo9*/?w.]޵"r&@ ,=yX; 1@Y'7JSCR“(4o?:P3K*zLMɰMCuQ|ԣ`_KuWӢr$s\/}))OX%զTQ0Uy) -/5ib`_8y la=&3/}{͠gBZrlݼ(-*i-k`)#p><;6~֝kF+{C2|nuwQ0ppqgyQ ]_d1џFԸg̐ M0>.39N=NHe)%W2_CٌS쩀uez7!P+nzįusτ=~#g_Y$i!kR!3mҭOztكAQE:²e-p1:t@Z">Z`#\S18Hę+­f27о돔$,781dvTZBuN;(5ѭ\5SeϺȂkZ+/ߦډ8i9N4+7`sLdYhG?,D" Bg7*p`DG5Ko 'Oe'WKa3h J֘ڔtR82P#G-=- i-uKl -fU$ Ӛ j A<|pP ,ɓ'jk)̇aLjY ZAU/ӭ(켃,f|"Rks6!u= -Ti&yΖ]u&>" &rzF)mQ#>h'=cq6]Mqg"p̀,&{lpit7NIO){08M]XC@wLd\Z Ik:Z+/OĆ:994d|۬{&yYkzefg.ڸm7t*ɐPeljgb8(lEۥkVf[P̀.|(0"H@eԷ.q&'15YA#k(YCNxFq8 Z0eHH؈p("@gv w>HL#䡟(#ގ-DO^"A; I)"M<-C}8 ":{n!hEh @?dL?ªE ğwv!Q=<ǔsr duuڠ| EƆ"Ŏ y?n&gxv OK5eɒgҗNp70iƖEQt>Op p%Z E3hr[`ULU,K -&\EVPv&Ƹ^&^z4_C]6ZH+ -quxWM)F5edYKNo[Ⰻĥf[mz@[_oo- x=Xl[amqH}gz)8<2v_+Qd3:0AͼG G{Z`T* ~͟XS̏{P{z{O8FzGIw" L 5y^Omn1TGeM TF/{$4^#ᘉDꞵ3uQ(K)чH2]s}]]vm=QKOU; -znF˚v ql|0=^\%yVj498`D}(ӹ +p.L}4p5VQ\jjfnV~N"5%=5xF0y'OeJPc\.Q!Wn"8-F&Bw`[%7 zQ"/~#5o0_PUpMTv8_zc;cQ?E+-67 }ذaX+%"ОșN3L"^ hJ+fZH:nM`6=0 TVDK0qs 7-F0?lLȀFp F(-+:%!HPBWQ8Gsg%]N;_#,&@̝w;(z!zqDdWtgdz(bq"FՋ%v<ص$BO& -0x~!#~&8'"\j:10 &>zՅ9Krjjʖug<-l"Tiвw"w0O&eL-- {)r -ټ GH<W'P+#+Kjp}SC32#|O}QCחEE9+R7[ٿˋHOOuyr>O*([%*om$dvruu-v)-`X8y [$\\VH)0$ʹAL`Ha 2 k2 ܃#pߓ`RP ð| a3"P]P]Pa O' (Т?s1QQDp$FERaK2-C:p -!Qklfɮ ]OJ_RJ pEۭl|7J"!@  -_j: 5H '_:`zX$\u3$8KsK3=y9D*%wC, T a I v&ݹ` @$+s˲Mv -p$I\gqCR?WQ]k΍^6[ ۤW( S"%/%?)wI ,,@o@AXQxuM -tɰΰIŠV[O._~yù7e`@>!;1'Qs3)yTq77:B5HfQ56EfQ8DA,N=N- .}􂺄V}`Io"-pHqoqoZ~<3WyF8̮>V B=w2rR03ȣGK -h #q:,ljʩ$#ɼv}X6ɠLinL63=(0Jj,΀"֡6s 9ف U*?Ε_{Mwv,JU(Zqo)gaiXH`;.hK7"c`'hh :[3RR%q -Q%2 }v;PAK_ujY7WxIHV"۳842ЧGL&w1qi&{GS <"M9Yb"?%q,ʎ?zhˁg_@0}[v`A(sœHc$8ސJ3fq%2s/"S0+\p -BR}Nzל;U>G -'tIiQe4٥Ni/J<<[ExPA0Ƒ IuihOG3 #/Wpď|_4?o~ܧWp֠BPa.V6U]o;0Fezp@1rp LSh#= (M -\A ͈ڣu5` 煷(JP/:0`*P_z@2' -6 |)X/P=X U?I탵Шlz'<)+ Dp <0eNLtмWJg3N&)4jDm$ƽhB5&ʊ%%3$T aMCͦޡZ :t?&㯸ܴث6ӽ44TF!) !Cc+A~Ń@AI߻JfTT85t?}B;{=Ґk ?Owo v 8=HdL/|ukxݴB -T -}<#2|39046*brR3SXf /uiq/^4㌋xbaG^~=<^Gie.ezl}ҽP22b&W\T@O(+80V#`,=xZAc퓮':ð(r /hӑ'Wpz{zjnF*#N5o"g i0(AԒ94t>ԝ*Iuzj9}x7H/Mq1o?/b8)Zj: :v3eZV? -3cE'#oej{yX04,h/(xOs+N4'6S"SPʥmЂDЄcI-4t;>zUuRT Rق5IHA{r/{wOa/jBɼ6WOp8uhF*4ڎ[*-1BerS u>7s>:neL.lYӕg?woŵlqWfΆv&,+0&UʛE!;ؠ4t[ؐ8!5ce CzZ/CE*L})j BXm On+;{P!=j\s>zUʥB3d2uEL62˿4m˽ ݆3++w^xDїZ> RW@DJgre,f};aSJ45v}PЫb]v+[Ҽ3YT %KS̫E;AxvPo}HnƑyLZ.-rQݚ~!Ϟ*Ƅt}$de59[,{]/jj-_{FvF?|5%!m[v'F)#I۠hq)o -7+n1xهg2DxfPH -`>, an6._>a{pe%&/!j*J :L?#?/F}vER5&vf?֨?L0gNrhfwk5 ay*\zx:{;= Kg:vyTeYY>9~y/Ozq3uw7MSVl-qJ68VˉԬ, -spdUTI#w 1Z$ +~-_py$wʋ/AE32x=u[zFbE9`p,HyfQy)TY^zU?>\|Y`X?8Fm #0V4#3T~_S_U0p?W4ջYYؖ6HШ1pFAi\lF -vhXb1 7 ߭K Z,/<4 8U),Vy}6g0\ \19^_q yf+[S 07ZLgOM sM cRD G -Am@[xGyoԑ?E‹QJoM0#IB}.'q1޾D'vD:#BVLz@xǠ4y%@@q -dPekAyARo-2HQ:7D*CQzG>URm joU?lҷs֦iΝ[6UgC)g̫&`%N&E2'>H؋/@g$ąG~A*҃tҸF -tџ*s>߅V`jI uFt́T l,iAdXh B!]Wf t@~ "Ф{ya8px*=E7)/@paRt {R<v\o~%-l.[^ܾ{itayw0[ -s.Y\Vc+s+١LQFK_b1g. ߡ'@0cuֲ55{Yk*<)4q,&Ggxrh a`, -.LD ޴zy+X^/߾\x鋃PaGȋͽ>J 1gc{EPn@e}vh{S+(}V|_0iK+`=mdH#P)q*vЋ9[T cPg]H`鷉_9Ёݠv4`U5OK 2O/6#/齉br.=iZ6G?C-shg}̸߷H y= -r^o8F&,[vU[-+L> -ja4hC5Cg!lp&y .."&ᘝ8=;uxf\zSD䷂ߎmgQOTn}fO_nguEEH:}9&أt Tdi;iZw$#=BIF%qEeWo:7@`8mJTtP ƯNz\kzڅz~Xf%3>0>)e䋺]W^d}cJpp - t9&^nfOrZVm\7q{Egtek|$GTA.,(M\ȍsڨ'|(A4І&!ROK 'Ul- 8{fjh*_:AP Re֧QkGd,9m:fm^͙>6DP~R23@ DAҍiն4{tFwSha'#71^Bmh& qVBh sվ;Y˒Y;(Te.2{Ɲe_of7qg^s! Å ,}Ҏka\Ax5ru9  C~}4@Ar ,$B'qZa{w2[ws(LM(]f/͖ l~y6y5iOwv^oz%-j*YUƅ0RS @"3+QT3C^q`[U2C dxllxE13qWUuxF4#S_@b*F9")CqL -{Xr -UN+=g -W֙SxG§T]a&H;,  %Mzu8=ts=mγ}4fټՁ_:y>K|TaG\qi\9>w ;\yj o51ihQh衠k?һPz0q&n$`{8tLcԞOj6g4Z!k3묤yy%2 ׹S/=^dGaHEF=<24p#!׵g]Q<?u` @kD0ޡ0r9E0|2n%/ߒp\iuzzhF>#GN*їfU$w$)3+1tn%G̎t8c - 녛@'Ga<9 y ^K2ͤ\bK%-+g/XӀ~남ȊEFv6._t$$N;l}|<>(CF ICiG`7`r_F m@H*Џ+IѻOgoިY*PˉA[Y*0 d␵+wPjZ> -stream -xuWyXijwgM㨨xxxɍ( !W r9C8TTFg#|bj#~}Jxe<{,]Nbu^+;%QU/3͑WboAc,]Y}0:UϪ*˦ю&AYYXX.PфF[8TV)WhdR*}H!K$Y@%An\CLGA -Y RҨITr<+`EߞUiWD<;a atQu|>A(*}ri KXVeꥂ=p+kT{ 6`+0@(`hVhu1)lXO= h{E]d,΃63 רLڧvSTbQ=N(f{:3GPfݵ)Z>z>AN}w&bz4ef)R9y\:nىGH3r5\Ƿ>?˂BȏI{_w0-Wb3ȳߖį5mپZ\<}c󒓋u~qOv]zs岢.m{tEyɳlY͢ѯwR5gOB|4JDDNQHi26h>Z'a-ò([梠7Q()r;_S %:~ >Nʃ#CE K.a >70÷׻aDӮ,ū'H$~R)}(LצjΒP:&_X]P\AO/:N`)eML6|vP;Z*jT||cE7Y_LF,*!1eݬ$| ٙ`r0P"^^Tү!\MTei@ͪL@KTCg8(TPej+>oCB*C;C'Cp5Jl*Uxիj4IP -c8C!ODcrY6M"oDي7Jmk0ΪV`e k^o`DH[YO@6^J- drFc}( #ɷ#JNqG"wJ⣎7 -Іkt>#،!g<=jF{i"73=iy"K00dž|>:y:?dRn' =s1G]U轉l<(+ d^2|44t_ It#/E1(c(CgmSu#'ۺDŽ -:Kη ,cٝR4|4MN#{Dļx6y\G:խXB<*>vI#@ -QFeO2ff*Wu}}ixMM I6X~=kWlwveVvU_s7,l . -c,23oHdM(1H -wu` &8DoB.+x7g̪] ffP -ܿsrTVUeJ n;rLNBb -wa`#Vm˚\L@y> ~NU*Q=CBp7K6'Q&0|0²Gچ -.Dw1]VZS;>fO.Gs"  >y鏡줔4bEB6p(N\ 'V=>C]"y}[MqVg u<cX -3I+'CCK)Kkcdwܪ0Dᗊ{bUq5/SЌ,>08c( $+0a ❐Y}IZ/.!kM^2pq xہ/Ff#ƲQjP˦_w8^X +Oc{G+ ?>38y_Qfd< j8X0hAKѸ8>qVa-|UxuNN3[`U zF*눅%ffȱ 9&G1epdTzz~TؐV +̖n(j4vaLcm3vihX6T{Q5b`hvRrP#66ytg4. ؈:,G20x) xW_$ksW )v=~wMV0ZI}n@fPr&İN*qbR&+G=w#s("C"P "$6("@p*`56ݳd͔xo*`b_z,NЮǰAuE*}a]=V>a7Bdv| OQIhir4O^4 -'r[ -A> Z )sO'6#I}ؐ4%7B Hn k/C}yߑ|#Jܩ{>Wg;eusJQ0&4ՅD02#{]a5F>tA1ϥ.[X4yjvCEͱ"7>``i X¦޼}trF[P^IYB7mR -˄0VgJDvvcAyC5́ҪAjccJX6I> 8Bc>HNIxǗ)`+8AI@ffr{ -7rɻbd$N0E2f/p X0/;%Gtv\,iUΤoT=0Xz~NtZ&ᕚӌvҝE `S.b d{C [^DM#;%^ ^#gfw{ia{ DrYmu\= Siq>(^~0M%s`d55#{ߣR/P`v3;q md:ZԻk=Mt۱5b +.JI(eb"$~|p9B$Bc-=Z0K*f2R ~^*O*ˋCJ_QE|?O`1rX!s|tDzcKc2l&/HsJ29}03 h[D!= ٣3 to? d ZU_a׍7 =%kaxX 儱!d`-V9X1{\l06,y9Pɽďmfw,UgН8NQ1yXt̑!4H ||HQDv^\4_s2λKeG'pړ+#>\mdÂn*"#6+~d~Q^Bgߪ뗪KYYP$'~3/xVf'XF}v`!l|g|#_QYCTf/@74(+;(㖊4pÞVsۄdO+a쩖3yWѢUҜv9h~~Ht1KG Y0GF.X SKg" 9IgA'ЬC& -x9\VP8l/Y*'Lx99b -|tc4^\qy}?ka|aiFI?Ų/]l5[0 a .Wb paXD[L?҄1>s<;0y\s }}Z(2[')4u*L]VU*|4}ՓޱeulQ -P -endstream -endobj -206 0 obj -<> -stream -xZYsG~ׯQJ'9rFA*l#jJUvг}==3ztoot 72h\'Cց0/,fr21hLNcf|>a6ԌO Rn9[ͭ]*LjdEV}W*{ZB5ie=[ߎh]'>/VdHj;ཐ`Lі̃68sNm A3:PȘ[jG`:@Df}@-Μ>5V^N'{JT04 jN jW4AʨEZ>]g|ޑuFwV[ECw)Œ5o˶/>Z{GݫaM&g;rTy'rKhIMF@vodrםˁjwMnNn(~92kliCM| %z)>,Ba4Xs%.6\NWǀWh -C }/V{vwu2ד{Q2UrwK ]ɕ?s!F 'ו'3z.K@ĩ7յTCWmV|ʶZR@~ȝ: ]a|̷ezkDrҺo:+8`N^hr`cO+ -.dH~nyV;{yy^=/|@؞?Pp;Pװ&seZ\٬PlS To*ՔLi.l7sl9!-v]*u|g B)ܐ5)Zz˨(PjR.nkW8d.$sYxN -){%hvnj/(x`r3U,#i{\@^uK2y̯<*"pI:$xH1b-C9m(`n-ߓ56c")jS1(IGPhb+ t\K!X:`Njm>l>|V,=u lv> -stream -xko6W0-Bo5j ؚnsݤMmnn}ؒe1i Gl=~;:{d0weAf"05io }YgoA6<C$[pvYx}:sos~*bQN$)F݈XwHC`c%_vϧ'ǣ /]L>LceQIAFJ 2T`ES%6*뽸Pbp`6n,V9gqANyuqM -̟ǝ% 7eVB#&nG㢄~$[;J @fr~ &?B6E=+ULNyt2; kK.sמ=t5iwmeEdF6ayHm-KcY5 碏vi9)pD*e] 6c!o5 Zc 48 -hbP\(1( -3 ́*|cV 6ʂsfQvr:H  y%L5kND Hf?Xk "VאKxj 8Gwf~!hTm I6&ҙi^M 6e#Mσb6XmѣV>m͢m[XkA t +ThTM֜gmmFS"&*7ƝQ*t.PT[8o -J:N3g 椐9H#kL -Lb!߃_3"gIT)z"9$el[BC92خaEޠXF -wLB-Q7;{%?|̿r?Z~5_;B3v! %33d|,IC1۾(fWO^3]NC˸ϙ_>9.\"}N"6 40AX1Ծ`pf#:hٶPVC+hI1!)XoV@:!wSSΕ\@8m*l}HNI >b@y6;`,SG9XYhv:LMyhdOKzos)v 4D=6Dl[lm+Nu"{qw:_=ۛLӧMCޟLGE7?zqr6LΚ5W}W%\ -r}g&V -endstream -endobj -208 0 obj -<> -stream -x]o6+t9o/0&a6^d^vh.uOY&vD*RCCF -N Y*liL;Bs+dF|lXe,ˬS[zE^K2l2aoAջ='>9JqmFYHtk.{]#}e܍%vL -l}}^$iks34`5]) )lGhE.,(Q"3dbqaFIAYRPeWwkWeLDޠi%'Kd\)*x>?`QNz@_ "5)' IӠknH"B 9i9:eٖ3WxهMef~]πU3`YƑ'jZ(fw\ruիcq15vz3!n6HP@u Aʱej]z,h,v%0+u)vaeR^4 xiv X*4#@NU|^|@Zc y=pҽlQbU.ŭ˭V& Z®KqXY0";w9Z F`2$! 1p=4qA- @x'頪4' 简j+ҢUleUlS(/8Ej9/Ow ([_ cظR\?$r](Nqr$ ),*~c@ntg V֡Km4quYT\ΡgS=b[N̚an|8y0ppyW$Ք]1HT+g홦!! $*OGID^IԺI8m7 D& PI5:X'ZS[o?& H Җ@>ڦ|3tG2 5uF4!F!I4I*!%IćyxeD䞃C{$i]:v(P -9`L"CM1|kq~؟Gn|>{~8?޿<6Svr6j^f< *j/P) -endstream -endobj -209 0 obj -<> -stream -xuJPFOUvDD@`]\ -FMkIRB|&إnऋ(HrTų9` ըa&ʺ:l -3Ŭ*ުnh)&C|>b纝黓AvCƫ+ y') -̵8+//Author/Creator(Typst 0.15.0)>> -endobj -211 0 obj -<> -stream -TH-141:表面张力的严肃理论范式教育教研组Typst 0.15.0zh-CN3application/pdf4GcoofWhl9BWlcMUTXiEnA==CPy0Lk0NYjK7dVf4CjYIQw==proof1.7 -endstream -endobj -212 0 obj -<>/ViewerPreferences<>/Outlines 46 0 R>> -endobj -xref -0 213 -0000000000 65535 f -0000000016 00000 n -0000000085 00000 n -0000000191 00000 n -0000000316 00000 n -0000000438 00000 n -0000000548 00000 n -0000000681 00000 n -0000000802 00000 n -0000000923 00000 n -0000001053 00000 n -0000001204 00000 n -0000001344 00000 n -0000001492 00000 n -0000001616 00000 n -0000001752 00000 n -0000001876 00000 n -0000002028 00000 n -0000002172 00000 n -0000002320 00000 n -0000002480 00000 n -0000002628 00000 n -0000002764 00000 n -0000002928 00000 n -0000003080 00000 n -0000003268 00000 n -0000003432 00000 n -0000003580 00000 n -0000003732 00000 n -0000003884 00000 n -0000004048 00000 n -0000004196 00000 n -0000004360 00000 n -0000004528 00000 n -0000004748 00000 n -0000004916 00000 n -0000005084 00000 n -0000005256 00000 n -0000005444 00000 n -0000005592 00000 n -0000005776 00000 n -0000005948 00000 n -0000006114 00000 n -0000006300 00000 n -0000006451 00000 n -0000006593 00000 n -0000006726 00000 n -0000006793 00000 n -0000006978 00000 n -0000007325 00000 n -0000007771 00000 n -0000008245 00000 n -0000008314 00000 n -0000008381 00000 n -0000008448 00000 n -0000008550 00000 n -0000008653 00000 n -0000008763 00000 n -0000008866 00000 n -0000008974 00000 n -0000009078 00000 n -0000009174 00000 n -0000009278 00000 n -0000009382 00000 n -0000009486 00000 n -0000009602 00000 n -0000009706 00000 n -0000009810 00000 n -0000009914 00000 n -0000010018 00000 n -0000010122 00000 n -0000010234 00000 n -0000010338 00000 n -0000010470 00000 n -0000010574 00000 n -0000010697 00000 n -0000010801 00000 n -0000010935 00000 n -0000011039 00000 n -0000011146 00000 n -0000011250 00000 n -0000011362 00000 n -0000011465 00000 n -0000011559 00000 n -0000011662 00000 n -0000011764 00000 n -0000011867 00000 n -0000011996 00000 n -0000012100 00000 n -0000012212 00000 n -0000012316 00000 n -0000012432 00000 n -0000012536 00000 n -0000012664 00000 n -0000012768 00000 n -0000012890 00000 n -0000012994 00000 n -0000013090 00000 n -0000013194 00000 n -0000013298 00000 n -0000013402 00000 n -0000013523 00000 n -0000013628 00000 n -0000013740 00000 n -0000013845 00000 n -0000013993 00000 n -0000014098 00000 n -0000014222 00000 n -0000014327 00000 n -0000014432 00000 n -0000014537 00000 n -0000014649 00000 n -0000014754 00000 n -0000014863 00000 n -0000014967 00000 n -0000015086 00000 n -0000015190 00000 n -0000015310 00000 n -0000015415 00000 n -0000015526 00000 n -0000015631 00000 n -0000015746 00000 n -0000015851 00000 n -0000015967 00000 n -0000016072 00000 n -0000016240 00000 n -0000016345 00000 n -0000016458 00000 n -0000016563 00000 n -0000016682 00000 n -0000016787 00000 n -0000016907 00000 n -0000017012 00000 n -0000017145 00000 n -0000017250 00000 n -0000017339 00000 n -0000017444 00000 n -0000017541 00000 n -0000017646 00000 n -0000017767 00000 n -0000017872 00000 n -0000017993 00000 n -0000018098 00000 n -0000018838 00000 n -0000018875 00000 n -0000018928 00000 n -0000018980 00000 n -0000019032 00000 n -0000019085 00000 n -0000019138 00000 n -0000019191 00000 n -0000019244 00000 n -0000019297 00000 n -0000019350 00000 n -0000019403 00000 n -0000019456 00000 n -0000019509 00000 n -0000019561 00000 n -0000019614 00000 n -0000019666 00000 n -0000019718 00000 n -0000019770 00000 n -0000019822 00000 n -0000019875 00000 n -0000019928 00000 n -0000019981 00000 n -0000020034 00000 n -0000020087 00000 n -0000020140 00000 n -0000020192 00000 n -0000020245 00000 n -0000020297 00000 n -0000020349 00000 n -0000020402 00000 n -0000020455 00000 n -0000020507 00000 n -0000020559 00000 n -0000020612 00000 n -0000020664 00000 n -0000020717 00000 n -0000020770 00000 n -0000020823 00000 n -0000020876 00000 n -0000020929 00000 n -0000020981 00000 n -0000021033 00000 n -0000021086 00000 n -0000021138 00000 n -0000021191 00000 n -0000021303 00000 n -0000021415 00000 n -0000021527 00000 n -0000021682 00000 n -0000022661 00000 n -0000022874 00000 n -0000023033 00000 n -0000023412 00000 n -0000023627 00000 n -0000023755 00000 n -0000023883 00000 n -0000024011 00000 n -0000024093 00000 n -0000025538 00000 n -0000053322 00000 n -0000053403 00000 n -0000053997 00000 n -0000059093 00000 n -0000060552 00000 n -0000062164 00000 n -0000063824 00000 n -0000064167 00000 n -0000064328 00000 n -0000065483 00000 n -trailer -<> -startxref -65673 -%%EOF \ No newline at end of file diff --git a/render/lib.typ b/render/lib.typ index bd57176..80b4ab4 100644 --- a/render/lib.typ +++ b/render/lib.typ @@ -248,17 +248,8 @@ /// note rendered as a visually distinct teaching-tip box. #let _render-outline-node(node, level) = { let title = node.at("title", default: "") - let kind = node.at("kind", default: "") heading(level: level)[#title] - if kind != "" { - block( - inset: (x: 0.35em, y: 0.1em), - fill: gray.lighten(80%), - radius: 0.2em, - text(size: 9pt, fill: gray.darken(30%))[#kind], - ) - } let notes = node.at("notes", default: none) if notes != none and notes != "" {