#reader(lib"read.ss""wxme")WXME0111 ## #| This file uses the GRacket editor format. Open this file in DrRacket version 8.10 or later to read it. Most likely, it was created by saving a program in DrRacket, and it probably contains a program with non-text elements (such as images or comment boxes). http://racket-lang.org/ |# 34 7 #"wxtext\0" 3 1 6 #"wxtab\0" 1 1 8 #"wximage\0" 2 0 8 #"wxmedia\0" 4 1 34 #"(lib \"syntax-browser.ss\" \"mrlib\")\0" 1 0 36 #"(lib \"cache-image-snip.ss\" \"mrlib\")\0" 1 0 68 (0 68 ((lib "image-core.ss" "mrlib") (lib "image-core-wxme.rkt" "mrlib")) ) 1 0 16 #"drscheme:number\0" 3 0 44 #"(lib \"number-snip.ss\" \"drscheme\" \"private\")\0" 1 0 36 #"(lib \"comment-snip.ss\" \"framework\")\0" 1 0 79 (1 79 ((lib "srcloc-snip.rkt" "framework") (lib "wxme-srcloc-snip.rkt" "framework")) ) 1 0 93 (2 93 ((lib "collapsed-snipclass.ss" "framework") (lib "collapsed-snipclass-wxme.ss" "framework")) ) 0 0 43 #"(lib \"collapsed-snipclass.ss\" \"framework\")\0" 0 0 19 #"drscheme:sexp-snip\0" 0 0 29 #"drscheme:bindings-snipclass%\0" 1 0 101 (3 101 ((lib "ellipsis-snip.rkt" "drracket" "private") (lib "ellipsis-snip-wxme.rkt" "drracket" "private")) ) 2 0 88 (4 88 ((lib "pict-snip.rkt" "drracket" "private") (lib "pict-snip.rkt" "drracket" "private")) ) 1 0 55 #"((lib \"snip.rkt\" \"pict\") (lib \"snip-wxme.rkt\" \"pict\"))\0" 1 0 34 #"(lib \"bullet-snip.rkt\" \"browser\")\0" 0 0 25 #"(lib \"matrix.ss\" \"htdp\")\0" 1 0 22 #"drscheme:lambda-snip%\0" 1 0 29 #"drclickable-string-snipclass\0" 0 0 26 #"drracket:spacer-snipclass\0" 0 0 57 #"(lib \"hrule-snip.rkt\" \"macro-debugger\" \"syntax-browser\")\0" 1 0 26 #"drscheme:pict-value-snip%\0" 0 0 45 #"(lib \"image-snipr.ss\" \"slideshow\" \"private\")\0" 1 0 38 #"(lib \"pict-snipclass.ss\" \"slideshow\")\0" 2 0 55 #"(lib \"vertical-separator-snip.ss\" \"stepper\" \"private\")\0" 1 0 18 #"drscheme:xml-snip\0" 1 0 31 #"(lib \"xml-snipclass.ss\" \"xml\")\0" 1 0 21 #"drscheme:scheme-snip\0" 2 0 34 #"(lib \"scheme-snipclass.ss\" \"xml\")\0" 1 0 10 #"text-box%\0" 1 0 32 #"(lib \"text-snipclass.ss\" \"xml\")\0" 1 0 1 6 #"wxloc\0" 0 0 59 0 1 #"\0" 0 75 1 #"\0" 0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 1.0 0 0 0 1.0 0 0 0 0.0 255 255 255 0.0 1 -1 0 9 #"Standard\0" 0 75 10 #"Monospace\0" 0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 1.0 0 0 0 1.0 0 0 0 0.0 255 255 255 0.0 1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1.0 1 1 1 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 2 24 #"framework:default-color\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 150 0 150 1.0 0 0 0 0.0 -1 -1 2 15 #"text:ports out\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 150 0 150 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 15 #"text:ports err\0" 0 -1 1 #"\0" 1 0 -1 -1 93 -1 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 175 1.0 0 0 0 0.0 -1 -1 2 17 #"text:ports value\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 175 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 34 139 34 1.0 0 0 0 0.0 -1 -1 2 27 #"Matching Parenthesis Style\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 34 139 34 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 38 38 128 1.0 0 0 0 0.0 -1 -1 2 37 #"framework:syntax-color:scheme:symbol\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 38 38 128 1.0 0 0 0 0.0 -1 -1 2 38 #"framework:syntax-color:scheme:keyword\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 38 38 128 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 194 116 31 1.0 0 0 0 0.0 -1 -1 2 38 #"framework:syntax-color:scheme:comment\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 194 116 31 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 41 128 38 1.0 0 0 0 0.0 -1 -1 2 37 #"framework:syntax-color:scheme:string\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 41 128 38 1.0 0 0 0 0.0 -1 -1 2 35 #"framework:syntax-color:scheme:text\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 41 128 38 1.0 0 0 0 0.0 -1 -1 2 39 #"framework:syntax-color:scheme:constant\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 41 128 38 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 132 60 36 1.0 0 0 0 0.0 -1 -1 2 49 #"framework:syntax-color:scheme:hash-colon-keyword\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 132 60 36 1.0 0 0 0 0.0 -1 -1 2 42 #"framework:syntax-color:scheme:parenthesis\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 132 60 36 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 36 #"framework:syntax-color:scheme:error\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 0 1.0 0 0 0 0.0 -1 -1 2 36 #"framework:syntax-color:scheme:other\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 0 1.0 0 0 0 0.0 -1 -1 2 16 #"Misspelled Text\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 81 112 203 1.0 0 0 0 0.0 -1 -1 2 38 #"drracket:check-syntax:lexically-bound\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 81 112 203 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 178 34 34 1.0 0 0 0 0.0 -1 -1 2 28 #"drracket:check-syntax:set!d\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 178 34 34 1.0 0 0 0 0.0 -1 -1 2 37 #"drracket:check-syntax:unused-require\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 36 #"drracket:check-syntax:free-variable\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 68 0 203 1.0 0 0 0 0.0 -1 -1 2 31 #"drracket:check-syntax:imported\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 68 0 203 1.0 0 0 0 0.0 -1 -1 2 47 #"drracket:check-syntax:my-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 178 34 34 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 116 0 1.0 0 0 0 0.0 -1 -1 2 50 #"drracket:check-syntax:their-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 116 0 1.0 0 0 0 0.0 -1 -1 2 48 #"drracket:check-syntax:unk-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 139 142 28 1.0 0 0 0 0.0 -1 -1 2 49 #"drracket:check-syntax:both-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 139 142 28 1.0 0 0 0 0.0 -1 -1 2 26 #"plt:htdp:test-coverage-on\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0.0 0 0 0 0.0 255 165 0 1.0 0 0 0 1.0 -1 -1 2 27 #"plt:htdp:test-coverage-off\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0.0 0 0 0 0.0 255 165 0 1.0 0 0 0 1.0 -1 -1 4 1 #"\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 4 4 #"XML\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 100 0 1.0 0 0 0 0.0 -1 -1 2 61 #"drracket:language name and memory use at top of interactions\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 100 0 1.0 0 0 0 0.0 -1 -1 2 37 #"plt:module-language:test-coverage-on\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 0 1.0 0 0 0 0.0 -1 -1 2 38 #"plt:module-language:test-coverage-off\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0.0 0 0 0 0.0 255 165 0 1.0 0 0 0 1.0 -1 -1 0 36 #"mrlib/syntax-browser:subtitle-color\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0.0 0 0 0 0.0 36 36 140 1.0 255 255 255 1.0 -1 -1 0 42 #"mrlib/syntax-browser:focused-syntax-color\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0.0 0 0 0 0.0 34 139 34 1.0 255 255 255 1.0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 0 0 255 1.0 0 0 0 0.0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 0 0 255 1.0 0 0 0 0.0 -1 -1 50 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 0 58 0 28 3 17 #"#lang racket/base" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 7 #"require" 0 0 24 3 1 #" " 0 0 14 3 10 #"ffi/unsafe" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 5 #"libhb" 0 0 24 3 2 #" (" 0 0 14 3 7 #"ffi-lib" 0 0 24 3 1 #" " 0 0 19 3 25 #"\"../3rdparty/libharfbuzz\"" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 20 #"hb-buffer-create-raw" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 14 3 11 #"get-ffi-obj" 0 0 24 3 1 #" " 0 0 19 3 18 #"\"hb_buffer_create\"" 0 0 24 3 1 #" " 0 0 14 3 5 #"libhb" 0 0 24 29 1 #"\n" 0 0 24 3 16 #" (" 0 0 14 3 4 #"_fun" 0 0 24 3 1 #" " 0 0 14 3 4 #"_int" 0 0 24 3 1 #" " 0 0 14 3 2 #"->" 0 0 24 3 1 #" " 0 0 14 3 8 #"_pointer" 0 0 24 3 3 #")))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 9 229 21 0 0 0 37 0 14 3 4 #"void" 0 0 24 29 1 #"\n" 0 0 14 3 18 #"hb_buffer_add_utf8" 0 0 24 3 2 #" (" 0 0 14 3 11 #"hb_buffer_t" 0 0 24 3 1 #" " 0 0 14 3 7 #"*buffer" 0 0 28 3 1 #"," 0 0 24 29 1 #"\n" 0 0 24 3 20 #" " 0 0 14 3 5 #"const" 0 0 24 3 1 #" " 0 0 14 3 4 #"char" 0 0 24 3 1 #" " 0 0 14 3 5 #"*text" 0 0 28 3 1 #"," 0 0 24 29 1 #"\n" 0 0 24 3 20 #" " 0 0 14 3 3 #"int" 0 0 24 3 1 #" " 0 0 14 3 11 #"text_length" 0 0 28 3 1 #"," 0 0 24 29 1 #"\n" 0 0 24 3 20 #" " 0 0 14 3 8 #"unsigned" 0 0 24 3 1 #" " 0 0 14 3 3 #"int" 0 0 24 3 1 #" " 0 0 14 3 11 #"item_offset" 0 0 28 3 1 #"," 0 0 24 29 1 #"\n" 0 0 24 3 20 #" " 0 0 14 3 3 #"int" 0 0 24 3 1 #" " 0 0 14 3 11 #"item_length" 0 0 24 3 1 #")" 0 0 17 3 1 #";" 0 0 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 2 #" (" 0 0 14 3 16 #"create-hb-buffer" 0 0 24 3 3 #") (" 0 0 14 3 20 #"hb-buffer-create-raw" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 11 #"; test area" 0 0