none
small basic graphic and animations and more (14) RRS feed

All replies

  • brics demo: ZBC673

    Friday, March 20, 2020 8:31 AM
  • bricks labyrinth: ZBC673-0

    Friday, March 20, 2020 10:08 AM
  • bricks castle: ZBC673-1

    Friday, March 20, 2020 10:31 AM
  • 3D-laby: TGR757

    Friday, March 20, 2020 4:22 PM
  • added tree&lights: TGR757-0

    Friday, March 20, 2020 5:25 PM
  • Pyramid&tree: FWF607

    Saturday, March 21, 2020 7:19 AM
  • bridge: MSJ058

    Monday, March 23, 2020 7:37 PM
  • magic 8-ball: DGG350

    Tuesday, March 24, 2020 10:43 AM
  • roundabout demo: XBJ496

    set var. eng true for leftside ride 

    Tuesday, March 24, 2020 8:01 PM
  • animated julia fractal:PHP027

    read instructions inside to generate julia file

    Thursday, March 26, 2020 12:59 PM
  • julia animation: NCP309

    Thursday, March 26, 2020 3:42 PM
  • mesh fnt v2:PWM623

    Thursday, March 26, 2020 9:32 PM
  • Ponnies playing: RJV536-0


    • Edited by Tryhest Friday, March 27, 2020 9:21 PM
    Friday, March 27, 2020 9:19 PM
  • Parrot: RJV536-1

    Saturday, March 28, 2020 4:17 PM
  • RJV536-2

    Saturday, March 28, 2020 8:11 PM
  • Witchy: RJV536-3

    Sunday, March 29, 2020 7:13 AM
  • Tutorial: How to import SVG drawings to SB
    note: the task is not for beginners but suited to advanced users

    requrements:

    part 1: SVG download

    There are many nice svg drawings on MIT site:

    • press the big ^^^ cat+ button and select a drawing
    • after selecting remove all sounds and cat files
    • save to local folder
    • rename the saved file to .ZIP
    • u will get following after opening zip:

    extract the bigger svg file and open it with inkscape:

    display in outline mode:

    Sunday, March 29, 2020 12:00 PM
  • part 2: SVG editing

    • ungroup shapes and also all subgroups
    • use node editing tool
    • remove unnecessary paths (can be tricky sometimes)
    • select all nodes on a path add nodes
    • press + button to add nodes
    • repeat until u get enough nodes (don't overexceed)
    • select all added nodes and convert to lines
    • final result:

    save svg file to new one

    Sunday, March 29, 2020 12:05 PM
  • part 3: svg text editing

    • this is the hardest task, as it is very demanding and tricky
    • SVG file has many features but we need only d="m ...  lines
    • also the polylines can be encoded in many ways, absolute or relative coords (omg!)
    • there can be also e-number forms which u may write as zero values 0

    source svg:

     

    after filtering:

    remove the Z " from end of each line, as well as d="m from beginnings

    use FIND to count all L letters, turn on wordwrap to see all lines at once

    now u must comprehend coords system:

    • the first 2 coords after M are basepoints, after that are relative offsets
    • if u find L-l block, the coords are absolute, not relative
    • u must insert letter a before each absolute pair
    • the last pair in one in L-l block must be preceded by r letter, which resets to rel. coords again
    • remove all L letters when done
    • also replace "," with " " (commas with spaces)

    final file:

    Sunday, March 29, 2020 12:17 PM
  • part 4: SB finally))

    • u may use DWV062 for all next sb imports
    • after first import u may encounter many issues, as displacing and missing parts
    • set fill to transparent for better seeing results
    • u will obtain this at first import

    now u can modify colors and add effects

    use delay 2222 for better understanding parts ordering

    final result:

    as final part u return to notepad++ and replace lineends to "`" sign

    after that select all line and paste to sb instead of file.getcontents

    Sunday, March 29, 2020 12:24 PM
  • Addendum:

    u can use ldimage.loadsvg(file), but it gives u a bmp output, not as shapes as shown above!


    • Edited by Tryhest Sunday, March 29, 2020 2:08 PM
    Sunday, March 29, 2020 2:07 PM
  • Hi Tryhest,

    I adapted your tutorial to a Wiki article:How to import SVG drawings to Small Basic.

    Best Regards & Thanks.

    Monday, March 30, 2020 1:03 AM
  • DWV062-1

    • simplified import preparation
    • recognises L l V v sequences
    • don't need to put "a" letter 
    • Edited by Tryhest Tuesday, March 31, 2020 4:47 AM
    Tuesday, March 31, 2020 4:28 AM
  • some chemicals from The Mollecular challenge: JQX626


    • Edited by Tryhest Tuesday, March 31, 2020 4:59 PM
    Tuesday, March 31, 2020 4:05 PM
  • list of all grandpiano tones: KVR082-0

    • regular scale A4=440 Hz
    • natural scale A4=432 HZ


    • Edited by Tryhest Wednesday, April 1, 2020 6:39 AM
    Wednesday, April 1, 2020 6:34 AM
  • Diagram of music tones: WZM067

    Wednesday, April 1, 2020 2:36 PM
  • Tryhest,

    After you published the way to read and draw SVG-files, I tried to automate the "hardest task". To see of all worked right, I used DrawLine statements instead of your use of polygons.
    During the testing I discovered that the "m" at the beginning of a path could alse be "M" with the consequence tha all the following coordinated are nor relatived but asolute. After studying the SVG-protocol, I found there are other one-letter commands possible in SVG. So I adapted the program to read and use all possible letters in the path string for drawing with straight lines: M, m, L, l, H, h, V, v, Z and z, as they are all necessary to get the drawing right. During the testing of the program, it was best to keep the comma which Inkscape put between the x and y coordinates in the string. It simplyfied the parsing. The "Z" at the end closes a polygon, but if you have a non closed line, you should test if the "Z" is not there.
    The published program is GGQ546, and is only tested with a Inkscape SVG-file. SVG from other sources can have other syntax for the coordinates, eg. SVG protocol does not prescribe a space after a command letter (e.g. "m25.66"). This needs another parsing method.

    In the figure is the Inkscape drawing at the left and fhe Small Basic drawing at the right.


    Jan [ WhTurner ] The Netherlands

    Wednesday, April 1, 2020 2:41 PM
    Answerer
  • updated mollecular chal. NQJ798

    • added dropdown chooser
    • removed autodisplay

    Wednesday, April 1, 2020 3:09 PM
  • update to 15 chemicals: LGP380-1



    • Edited by Tryhest Thursday, April 2, 2020 8:05 PM
    Thursday, April 2, 2020 4:40 PM
  • 3D_turtle: GMN529

    Friday, April 3, 2020 11:22 AM
  • 3D Dome: GMN529-0

    Saturday, April 4, 2020 4:41 AM
  • golden vase: GMN529-2

    Saturday, April 4, 2020 6:41 AM
  • handwritting algorithm: BFZ410

    press space to change style


    • Edited by Tryhest Sunday, April 5, 2020 7:10 PM
    Sunday, April 5, 2020 7:09 PM
  • 2 flags anim: TWQ434-1

    Monday, April 6, 2020 4:59 AM
  • Tutorial: Making WIFI anemometer

    Requirements:

    • arduino uno+wifi card or wemos D1 or similar board
    • drone micro motor- u can find him from an old drone or form electric singleuse tootbrush
    • powerbank with min. 2,1A output
    • wifi home network
    • Arduino IDE
    • ESP8266 wifi library
    • microcups from an children meteo set
    • hotglue and electrician white tape

      sb code is only displaying webpage browser for now:
    GraphicsWindow.Title="Anemometer
    LDControls.AddBrowser(300 300 "192.168.5.13")

    arduino code is a bit more complex:
    #include <ESP8266WiFi.h>
     const float referenceVolts = 5.0; // the default reference on a 5-volt board
    const int batteryPin = 0; 
    const char* ssid = "xxx"; //<--------set ur wifi network id
    const char* password = "yyy";//<-----set wifi access password 
     
    int ledPin = D5;
    WiFiServer server(80);
    
    IPAddress ip(192, 168, 5, 13); // where xx is the desired IP Address
    IPAddress gateway(192, 168, 5, 1); // set gateway to match your network
    
    void setup() {
     // Serial.begin(115200);
      delay(10);
     
     
      pinMode(ledPin, OUTPUT);
      digitalWrite(ledPin, LOW);
     
      // Connect to WiFi network
    //  Serial.println();
    //  Serial.println();
     // Serial.print("Connecting to ");
     // Serial.println(ssid);
       IPAddress subnet(255, 255, 255, 0); // set subnet mask to match your network
      WiFi.config(ip, gateway, subnet); 
      WiFi.begin(ssid, password);
     
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
     //   Serial.print(".");
      }
     // Serial.println("");
     // Serial.println("WiFi connected");
     
      // Start the server
        digitalWrite(ledPin, LOW);
      server.begin();
      digitalWrite(ledPin, HIGH);
      delay(250);
      digitalWrite(ledPin, LOW);
      delay(200);
      digitalWrite(ledPin, HIGH);
      delay(250);
      digitalWrite(ledPin, LOW);
      delay(500);
      digitalWrite(ledPin, HIGH);
     // Serial.println("Server started");
     
      // Print the IP address
     // Serial.print("Use this URL : ");
     // Serial.print("http://");
     // Serial.print(WiFi.localIP());
     // Serial.println("/");
     
    }
     
    void loop() {
    
      // Check if a client has connected
      
      WiFiClient client = server.available();
      if (!client) {
        return;
      }
     
      // Wait until the client sends some data
    //  Serial.println("new client");
      while(!client.available()){
        delay(1);
      }
     
      // Read the first line of the request
      String request = client.readStringUntil('\r');
    //  Serial.println(request);
      client.flush();
     
      // Match the request
     
      int value = LOW;
      if (request.indexOf("/LED=ON") != -1) {
        digitalWrite(ledPin, HIGH);
        value = HIGH;
      } 
      if (request.indexOf("/LED=OFF") != -1){
        digitalWrite(ledPin, LOW);
        value = LOW;
      }
     
        int val = analogRead(batteryPin); // read the value from the sensor
      float volts = (val / 1023.0) * referenceVolts; // calculate the ratio
    
     
      // Return the response
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html");
      client.println(""); //  do not forget this one
      client.println("<!DOCTYPE HTML>");
      client.println("<html>");
     
      client.print("km/h: ");
     client.print(volts*500);
    
      if(value == HIGH) {
        client.print("On");  
      } else {
        client.print("Off");
      }
      client.println("<br><br>");
      client.println("Click <a href=\"/LED=ON\">here</a> turn the LED on pin 5 ON<br>");
      client.println("Click <a href=\"/LED=OFF\">here</a> turn the LED on pin 5 OFF<br>");
      client.println("</html>");
     
      delay(1);
      //Serial.println("Client disconnected");
     // Serial.println("");
     
    }



    • Edited by Tryhest Monday, April 6, 2020 1:47 PM
    Monday, April 6, 2020 1:42 PM
    • when u connect to ur wifi home network the wemos d1 will blink twice to confirm connection
    • u can skip line  WiFi.config(ip, gateway, subnet); if u dont'know free ip adress, which will be listed on serial montor
    • u can uncomment serial. lines in order to test board prior to install outside, use seral monitor from arduino ide

    phase 1: hardware setup

    • get the drone micro motor and glue it with hot glue to a holder
    • glue the cups to the rotor of motor, the connection  must be strong to support wind hits 
    • make wiring enough lenghth
    • isolate everything with el.tape
    • remember motor polarity  in order of rotation direction - use a multimeter to measure mV
    • put a protection diode between motor wires in order to prevent reverse currents on spinning in wrong direction, ( - ) on marked diode side 

    • Edited by Tryhest Monday, April 6, 2020 2:05 PM
    Monday, April 6, 2020 2:04 PM
  • phase 2: testing in-house

    • connect motor to A0 (+) and gnd (-) of arduino/wemos board
    • connect protective diode between a0/gnd (1N4004 or similar)
    • measure motor polarity with a multimeter to ensure correct polarity +/- matches cups spinning drection
    • u can use simplified arduino code for beginning to ensure correct motor voltage readout
    #include <Wire.h>
    #include <LCD.h>
    #include <LiquidCrystal_I2C.h>
    
    #define I2C_ADDR    0x27 // <<----- Add your address here.  Find it from I2C Scanner
    #define BACKLIGHT_PIN     3
    #define En_pin  2
    #define Rw_pin  1
    #define Rs_pin  0
    #define D4_pin  4
    #define D5_pin  5
    #define D6_pin  6
    #define D7_pin  7
    const float referenceVolts = 5.0; // the default reference on a 5-volt board
    const int batteryPin = 0;         // battery is connected to analog pin 0
    int n = 1;
    
    int lastB = HIGH;
    int nowB = HIGH;
    
    LiquidCrystal_I2C  lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
    
    
    void setup() {
      lcd.begin (20, 4);
    
      // Switch on the backlight
      lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
      lcd.setBacklight(HIGH);
      lcd.home (); // go home
    
      lcd.print("Init...");
    
    }
    
    void loop()
    {
       int val = analogRead(batteryPin); // read the value from the sensor
      float volts = (val / 1023.0) * referenceVolts; // calculate the ratio
    
      lcd.home (); // go home
        lcd.print ("km/h:  ");
    lcd.print (volts*500);
      delay(200);
    }
    the above code  uses a i2c display to display data. u can correct the readout according to motor type (volts*500) to more or less value, depends on its magnetic properties
       
    Monday, April 6, 2020 2:58 PM
  • phase 3: instalation in-site

    • find the desired place, with no obstacles for wind
    • fasten well the windmill with nylon grips to holder
    • find a housing for arduino/wemos board, with no rain access, also in shade (Nothern house part e.g.) 
    • turn on wemos board. it will blink twice to signal wifi-access established
    • navigate to webpage generated by script
    • u can turn lamp on/off to test correct setup
    • sometimes it takes a few reset to start working ok
    • ensure wifi access with no obstacles, or use a wifi repeater to boost signal
    • u can use ur mobile phone on wifi network to read wemos webpage

    phase 4: optimizing and upgrading

    • u can use rotary encoder instead of motor, as it has better readout for weaker winds
    • also u can use old mouse with ball which has optical encoder
    • u can turn ur site available to public access with port opening
    • u can make a graph displaying of readouts by ldgraph  and timer
    • use a bigger power bank to ensure long work, also can connect a solar cell to fill powerbank
    • u can connect thermometer and barometer arduino module to display more detailed weather data
    • u can use rotary encoder and arrow to determine wind blow direction

    • Edited by Tryhest Monday, April 6, 2020 3:20 PM
    Monday, April 6, 2020 3:19 PM
  • part 5: references

    motor:

    • cut out elises
    • seal to wind-cups with hotglue bond

    sample weather station:

     

    wemos/arduino git hub for wifi driver:

    https://github.com/esp8266/Arduino

    wemos d1 board:
    https://www.banggood.com/D1-R2-V2_1_0-WiFi-Uno-Module-Based-ESP8266-Module-p-1085610.html?rmmds=buy&cur_warehouse=UK

    arduino ide:

    https://www.arduino.cc/en/main/OldSoftwareReleases

    el. scheme:

    • Edited by Tryhest Monday, April 6, 2020 4:33 PM
    Monday, April 6, 2020 3:55 PM
  • outline renderer of Nonki's SVG import: BJH503

    to create outline use this Nonki's SVG import and select Save SVM after importing SVG file: ZTN525-0

    Wednesday, April 8, 2020 7:09 AM
  • crown project: GFZ321

    Friday, April 10, 2020 7:24 AM
  • 51 flags: XDC346-1

    Tuesday, April 14, 2020 7:05 PM
  • project flags&map v0.1: MBC240

    • tooltip country name displayed

    Wednesday, April 15, 2020 7:41 AM
  • simple clockwork anim using charset: DLS866

    Friday, April 17, 2020 9:53 AM
  • shapes in pseudo-plot format: NDF138

    Wednesday, April 22, 2020 2:20 PM
  • pseudo-plot is regular hpgl format with some modifications:

    • coords are translated in unicode chars starting at 2000
    • shapes must be modified by crosscuts to make holes
    • no use of commas or spaces, pu or pd,sp, in and other HPGL cmds 
    • coord pairs are represented by 2 unicode chars XY, thus 0,0 is [2000][2000]
    • lines are treminated by LF only  (chr 10)

    generator for compressed hpgl format: PNC820

    sample input file: (truncated)

    1461 905 1445 889 1413 908 1398 897 1385 885 1376 872 1369 858 1369 448 1403 396 1438 350 1422 333 1355 386 1247 286 1163 358 1048 446 1046 421 1042 397 1034 374 1023 353 1009 333 992 315 973 298 950 283 822 400 837 417 862 400 879 416 890 433 897 452 900 471 900 872 856 920 974 1020 1087 920 1045 867 1045 481 1155 400 1226 460 1226 833 1227 866 1230 896 1236 922 1244 944 1257 964 1273 983 1295 1002 1321 1020 1461 905 1445 889 1430 898 
    2820 912 2804 896 2776 915 2756 903 2741 890 2733 878 2730 865 2730 421 2775 382 2659 290 2549 382 2586 429 2586 820 2460 911 2435 895 2418 877 2407 857 2405 847 2404 836 2404 421 2450 383 2332 291 2182 407 2198 424 2234 402 2262 429 2262 840 2263 869 2268 896 2276 921 2286 945 2300 967 2317 987 2337 1005 2360 1021 2583 862 2585 886 2589 909 2597 931 2608 953 2621 973 2638 992 2658 1010 2681 1027 2820 912 2804 896 2790 906 
    3228 391 3228 312 3069 312 3067 114 2864 368 2863 390 2917 390 2917 792 2915 825 2907 854 2894 881 2875 904 2920 923 2967 949 3018 982 3072 1023 3212 901 3195 879 3151 914 3069 845 3069 391 3228 391 3228 351 


    sample hpgl inkscape-output file:

    hpgl inkscape options:


    beware of putting all object inside page otherwise inscape produces strange errors in py script!
    • Edited by Tryhest Wednesday, April 22, 2020 9:00 PM
    Wednesday, April 22, 2020 8:43 PM
  • making crosscuts in inkscape:

    1. draw a rectangle over object to crosscut

    wireframe view:

    2.select both objects

    3.perform PATH-Difference

    4.remove unnnecessary nodes

    5. reduce gap if u like:

    Wednesday, April 22, 2020 9:14 PM
  • ioTCPserver messaging: MCL385

    code to send message is quite simple:

    IOTCPClient.Connect("127.0.0.1" 1234) '<----server adr/port'
    GraphicsWindow.Title= IOTCPClient.SendMessage("hkjhkjh lorem")
    IOTCPClient.Disconnect()


    • Edited by Tryhest Thursday, April 23, 2020 4:21 AM
    Thursday, April 23, 2020 4:19 AM
  • QJP554-0 Avangarde Clock


    • Edited by Tryhest Friday, April 24, 2020 10:04 AM
    Friday, April 24, 2020 7:38 AM
  • roman clock w antique hands: QJP554-1

    hands image:

    Friday, April 24, 2020 2:26 PM
  • polygons for SBO:

    shX = 0
    shY = 0
    scale = 3
    GraphicsWindow.BackgroundColor="tan"
    param="86.2049,90.6936,77.0102,93.5343,68.5291,94.4812,55.1075,92.2169,43.1681,85.4237,32.4638,72.0845,28.8957,55.2321,32.4638,38.3385,43.1681,24.9855,55.1487,18.1924,68.6938,15.9280,76.9690,16.8750,86.2049,19.7157,86.2049,43.0456,83.4328,40.1088,80.6058,37.9954,75.1987,35.6487,69.4074,34.8664,62.3261,36.0055,56.2329,39.4226,50.9219,46.2569,49.1515,55.2321,50.9219,64.1661,56.2329,70.9866,62.3261,74.4038,69.4074,75.5428,75.1987,74.7606,80.6058,72.4139,83.4053,70.3279,86.2049,67.3636,"
    
    SBO_SplitParam()
    Sprite_Add()
    
    Sub Sprite_Add
      nSprite = nSprite + 1
      s = scale
      nPts = Array.GetItemCount(pts)
      Sprite_ScalePoints()
      f400=509
      x=1
      y=1
      b=13
      GraphicsWindow.PenWidth=0
      GraphicsWindow.BrushColor="blue"
      
      For a=11 To 1 Step -1
        Shapes.AddTriangle(points[a][1], points[a][2], points[b][1], points[b][2], points[b+1][1], points[b+1][2])
        Shapes.AddTriangle(400-points[a][1], f400-points[a][2], 400-points[b][1], f400-points[b][2], 400-points[b+1][1], f400-points[b+1][2])
        b=b+1
      EndFor
      
      GraphicsWindow.BrushColor="blue"
      b=11
      Shapes.AddTriangle(points[13][1], points[13][2], points[b][1], points[b][2], points[b+1][1], points[b+1][2])
      b=11
      For a=13 To 23
        Shapes.AddTriangle(points[a][1], points[a][2], points[b][1], points[b][2], points[b+1][1], points[b+1][2])
        Shapes.AddTriangle(400-points[a][1], f400-points[a][2], 400-points[b][1], f400-points[b][2], 400-points[b+1][1], f400-points[b+1][2])
        b=b-1
      EndFor
    EndSub
    
    Sub Sprite_ScalePoints
      points = ""
      ix=0
      For iPts = 5 To 52 Step 2
        ix=ix+1
        points[ix][1]=Math.Round(pts[iPts] * s  )
        points[ix][2]=Math.Round(pts[iPts+1] * s  )
      EndFor
    EndSub
    
    Sub SBO_SplitParam
      _param = ""
      p = 1
      name=0
      len = Text.GetLength(param)
      While p <= len
        eq = Text.GetIndexOf(Text.GetSubTextToEnd(param, p), ",")
        name = name+1
        value = Text.GetSubText(param, p , eq-1 )
        _param[name] = value
        p = p+eq
      EndWhile
      pts = _param
    EndSub

    Wednesday, April 29, 2020 7:15 AM
  • sb-online plot viewer:

     uses compressed HPGL format:

    • PU/PD are eliminated as well as other HPGL cmds
    • position is transcoded in unicode 2-chars starting at chr(2000) offset
    • first 2 chars are used as PU cmd,  other are PD
    dx=-5
    dy=5
    scale = 0.1
    GraphicsWindow.BackgroundColor="tan"
    param="ᒈࡵᐼ࢚ᏯࣂᏊࣗᎥ࣮ᎃआ፣ठጽॄጛ३ዽ঑ዤ঺ዏ০ኾਕኲ੅ኪ੸ኃ੪ቝ੡ሸਜ਼ሓਖ਼ᇹਗ਼ᇡਫ਼ᇉ੤ᆳ੬ᆞ੶ᆊઃᅷઓᅥતᆇથᆦ઩ᇄયᇠષᇻૂሓ૎ራ૞ቀ૯ቔଂብଘታଯቿେ኉ୢ኏୿ናஞንாቨமሼ஢ሑ஛ᇧஙᇑஙᆽஜᆩ஠ᆖ஧ᆃயᅱஸᅠ௄ᅐ௑ᆌ௞ᇃ௮ᇶంሥచ቏వቶ౓ኘ౵ኵಛዃಱዏೈዙೡዡ೽የചይഹዯ൚ደൽዯඕዬඬዦවዟෑዕ෠ዉ෭ኺ෸ኪ฀ቴงሻฃᇤ෴ᆒ෦ᅱ෣ᅕ෢ᄺ෣ᄠ෦ᄈ෬ჱ෴მ෾ჇชႴนႢษ႑฼ႂ๒ၴ๩ၧ຃ၜຟၒຽ၂ༀ။༃ၛ໧ၬ໏ၼົႍຫ႞ພႰຕჂຏეຍჼດᅟິᆱ໋ᇲ໙ሌໜሡໝቌ໚ቷ໒ኤໃዓຯጂຕጳ๵፦๏᎙รᏅ෼Ꮼුᐑණᐱංᑎ൘ᑧമᑼഃᒎ೘ᒛಲᒦಊᒯ౟ᒷలᒼఃᓀ௑ᓂ஝ᓁ୧ᒺয়ᒽ঒ᓄ्ᓒऋᓧ࣎ᓵࢱᔄ࢕ᔖࡺᔩࡠᕗࠪᖎߴᖉߕᔩ߶ᓓࠍᒉࠜᑨࠟᑊࠠᐯࠟᐍࠜᎶࠍ፽ࠂፎ߶ጀߦኵߚቱߓሲߐᇴߔᆻߝᆡߤᆈ߬ᅰ߷ᅚࠂᅅࠐᄲࠞᄟ࠯ᄏࡁჿࡔჱࡩფࢀი࢘ჍࢶჅ࣒Ⴠ࣪ႿऀჁज჈सვ॒ღ६ჼঁᄓ঑ᄭচᅉঝᅟছᅱগᆁএᆎ঄ᆘॶᆟ॥ᆣ॑ᆥऺᆢऩᆞचᆘऎᆐऄᆇࣼᅼࣶᅯࣳᅡࣱᅌࣳᄯࣹᄔࣾᄀऀჶࣾჯࣹცࣱჩࣦხ࣊ჼ࢟ᄃ࢖ᄍࢎᄘࢇᄥࢁᅃࡺᅨࡷᆊࡹᆮࡾᇔࢆᇼ࢑ሱࢢቕࢰቴࢹአࣄወ࣌ዬ࣑ጌ࣓ጤ࣒ፀ࣎ᎀࣀᏎࢧᐩࢅᑂࡺᑝࡱᒒࡢᓂࡕᓖࡏᓧࡈᒧࢌᒊࢮᑰ࣐ᑙࣲᑄओᐲवᐢॗᐕॹᐊঝᐁৄᏹ৬ᏳਖᏯੂᏬટᏬ౐ᏫಊᏧುᏢ೴ᏛഢᏒ്Ꮗ൴ᎹඖᎪඵ᎒ෘ፶෸ፗตጳฮጌใዠ๕ኰ๤ች๯ቻ๥ኟ๔዁เዟหዻดጓ෺ጨෟጺෂፉජፒඋፙ൱፤ള፫೨፭ಒ፭੠፮ਾ፲ਜ፹৺ᎂ৘ᎎশ᎜কᎬॴᎾ॔ᏒऴᏧख᏿ࣸᐘࣛᐲࢿᑍࢥᑪࢌᒈࡵᑤࢇ;᳼ྎᲿྥᲂྵ᱄྾ᰅ࿂ᯤ࿁ᯂ྽ᮠྸ᭽ྱ᭚ྦྷᬶྛ᫭ཾᩂ࿺ᨃဤ᧓ှᦱ၎ᦌၛᥥၦ᤼ၰᤑၷᣤၼᢵၿᢃႀᢃᅝᡗᅞᠭᅡ᠄ᅧ៞ᅯឹᅸពᆅ᝵ᆓ᝖ᆣ᜴ᆻ᜗ᇕ᛾ᇱᛩሐᛙሰᛎቔᛇቹᛅኡᛑኡ᛫ኅᜇቬᜦቘᝆቇᝨሻឍሳ឴ሮៜሮᢃስᢃᓘᢂᔉ᡿ᔶ᡹ᕟᡲᖄᡨᖦᡜᗃᡍᗜᠽᗲᠡᘒ᡿ᗳᢟᗗᢼᖹᣗᖚᣰᕻᤆᕚᤙᔸᤪᔕᤸᓱ᥂ᓒ᥊ᒰᥖᑣᥞᐊᥠᎦᥠႯᦔႨᦩႣ᧍႙᧭ႌ᧭Ꮵ᧬ᐛ᧨ᑎ᧡ᑾ᧘ᒫ᧍ᓔᦿᓻ᦭ᔟᦘᕁᦀᕡᥥᕾ᥆ᖙᤣᖲ᣾ᗊᣕᗠᢨᗴᡷᘇᡙᘐᠹᘘ᠜ᘛ᠂ᘚ៶ᘕៀᗹᝍᖷ᜛ᖞᛮᖌᛄᖂ᚟ᕾᚇᖀ᙭ᖅᙒᖍᘵᖘᘗᖮᗽᗉᗧᗨᗔᘌᗆᘴᖼᙡᖶᚒᖴᛇᖾᛇᗇᚬᗒᚔᗞ ᗬᙯᗻᙢᘌᙙᘝᙔᘱᙒᙠᙞᛓᚁᛴᚉ᜔ᚏᜲᚓᝏᚔឈᚑឝᚎឭᚊᣦᘬᤧᘗᥢᘀᦘᗧᧉᗍ᧵ᖱᨛᖔᨻᕵᩗᕔᩯᔰ᪄ᔇ᪖ᓚ᪦ᒩ᪲ᑳ᪺ᐸᫀᏺ᫃Ꮇ᫅ስᯌስᰑᅝ᫅ᅝ᫅ၹ᫿႒ᬸႣ᭲ႮᮬႱᯋႰᯪႬᰈႦᰤႝ᰿႑ᱚႃᱳၲ᲋ၟᲟ၌Ჲ့᳂ဠ᳑ဆ᳟࿫ᳪ࿎᳴ྯ᳼ྎ᳖ྜ;ഓၖഈ၏೾၇ೳဿ೨း೜၏೏ၦೂၽವ႓ౄၲ௔၍୤ဤ૴࿸ઽဩઇၚ੐ႋਙႻ৸ო৘ᄁ়ᄨঢᅒঌᅽॽᆩॳᇖ॰ሂঁሯরቶ৷ከ੗዇૎ዑ୸዇ୗጄ஠ጄ௃ኼఝ኱౗ክಒካസኻපዪจጹัᎧำᎮึᏑึᏴษᑑ฀ᒯරᔍ൜ᕬധᕘೳᕄಿᔰಋᔜಫᔊ೉ᓹ೥ᓩ೾ᓛകᓍപᒿ഼ᒳോᒧ൸ᑾ඙ᑔඬᐪඳ᐀඲ᏪථᏖඩᏂජᎰർ፹ുፑ೯ጹಈጱ౏ጳగጶ஁ፄடጅୖጅ଱ፉૢፔ઒፛ઁ፛ਜ਼ፚਸ਼ፗਓፑৱፉ৒ጾ঵ጰঙጟॾጌ।ዱ॑ዖॅኼुኢॅኈॐቮॡቒॺሶ२ሆचስ࣡ቪࣀኤࢴዤࢵድࢸጇࢾጚࣅጯࣥ፭ओᎣॎᏏখᏲঢ়ᐈਢᐖ੥ᐝદᐜૃᐚનᑓ૧ᑓ଄ᐗஆᐋ௥ᐂతᏽూᏻ౬ᏼಐ᏿ಮᐄ೅ᐌೕᐗೠᐥ೦ᐶ೨ᑉ೤ᑟ೗ᑸೂᒔತᒲ಍ᓆ౵ᓙ౞ᓭెᔀொᓚୠᒻଉᒥૅᒖ૦ᑕધᑕઍᒍৎᒁवᒐࣈᒾࢆᔋࡰᕶࡱᖉࡴᖜࡹᖯࢁᗁࢊᗑ࢔ᗠࢠᗮࢭᗼࢼᘇ࣌ᘑࣝᘙ࣯ᘡंᘨखᘮपᘲिᘴ॑ᘵॢᘶॴᘷঅᘹহᘸ৴ᘱਸ਼ᘢ੾ᘌ઎ᘆઢᗿહᗶ૓ᗫ૰ᗟ଒ᗑଶᗁଡ଼ᖱଏᖝટᗑ਴ᗵৎᘌ८ᘓळᘎःᗿࣞᗥࣅᗁࣂᖷࢿᖮࢼᖥࢹᖛࢽᖂࣈᕪࣛᕖࣶᕄऐᔹबᔱैᔬ॥ᔪুᔱਨᕆચᕩଗᖙ୥ᖮமᗌ௶ᗪిᘈಈᘦ೗ᗽഝᗖ൛ᖲඏᖏพᔞຄᒥໂᐦ໖Ꭰ໖᎔໊ጯລዖ๧኉ฑ቉ෆሧ൫ላ೿ᇷಁᇫఱᇪ௱ᇰ஌ᇼୀሇ૴ሌઌሂੂᇥਕᆴਉᆖ਄ᅪਈᅇਔᄨਨᄍ੄ჶ੢ქંიતბે჎૑჎૚჎૤჎૭჎ୁპ஖ჺ௭ᄥౄᅞ௹ᇥషᇠ;ᶆᘣᷛᗶḰᗐẄᖯộᖔἭᕿᾁᕰ῕ᕧ
ᕥ⁦ᕦ₦ᕫ⃦ᕲℨᕽⅪᖋ↮ᖜ⇳ᖰ∹ᗇ≪ᖞ⊚ᕸ⋊ᕖ⋺ᔶ⌨ᔗ⍖ᓼ⎄ᓤ⎱ᓎ⎱ᒘ⎶ᑋ⎸᏿⎺Ꮗ⎸ፍ⎱ዝ⎦ቶ⎗ሙ⎉ᇛ⍹ᆡ⍦ᅪ⍑ᄷ⌺ᄈ⌡ო⌆Ⴕ⋨႐⋈ၰ⊦ၓ⊁်≛ဤ∲ဓ∇င⇙࿺↪࿳Ⅻ࿮⅄࿬⃦࿬₩࿭⁞࿱ᾢ࿿ỦဍẝတṠဒṕနḯထḋညᷨ࿾᷅࿬ᶧ࿕ᶍྻᵸྞᵧཾᵥྪᵥ࿖ᵬခᵸါᶊၓᶢၺᶼႚᷛႶ᷾჋ḧმṗღẏწỏჯἌჭὠყᾷტῴრῊ჻ᾣᄕ὿ᄱ὞ᅍὀᅩἤᆆἌᆤỷᇂỡᇤỎለẽሮẮቕạቿẗኩẐዖẋጄṆጂḓጃ᷻ጆᷤጋ᷎ጒᶹጚᶦጥᶔጱᶁጾᵰፎᵡ፟ᵔ፱ᵊᎅᵁ᎛ᴺᎳᴶᏌᵇᎼᵙᎮᵫᎢᵽ᎙ᶐ᎑ᶣᎌᶶᎉ᷊ᎈᷝᎉᷰᎌḂ᎑ḓ᎘ḦᎤḷᎳṅᏄṐᏘṙᏯṠᐈṤᐥṥᑄṡᑩṖᒑṄᒻḪᓧḉᔖᷡᕇᶱᕺᵺᖰᶃᖹḠᕍṖᔦṺᔉẻᓑỘᒴỲᒗἋᑺἢᑜἶᐾὈᐟ὘᐀ὦᏡὲᏁὼᎡᾃᎀᾉ፟ᾌጽᾍጛᾍᇪᾐᆶᾕᆝᾛᆇᾢᅱᾫᅝᾶᅋῃᄺ῞ᄠ ᄇ‮ხ⁣ვ⁆ᄎ※ᄪ′ᅇ‪ᅣ‥ᅿ•ᆛ‡ᆶ…ᇐ…ጪ⁒ጪ⁒ᇉ⁓ᆣ⁖ᆀ⁛ᅞ⁡ᄾ⁩ᄡ⁳ᄅⁿწ₍ვ⃆თ⃆ጪ⃷ጪ⃷ኌℐኛKከ⅃ኳ⅝ኼⅷዃ↑ወ↫ዋ⇆ዌ⇍ዋ⇍ኦ⇆ኦ↨እ↋አⅯኘ⅕኎ℼኀℤተℍቜ⃷ቆ⃷თ℧ი⅔ნⅿუ↥წ⇉ჸ⇪ᄇ∇ᄘ∡ᄬ∹ᅃ≎ᅝ≡ᅻ≱ᆜ≿ᇂ⊋ᇪ⊕ሖ⊜ቆ⊆ቛ≯ቭ≘ች≀ኊ∧ን∍ኝ⇳ኢ⇗እ⇗ዋ∎ዅ∨ዀ≁ኸ≚ኯ≲እ⊊ኘ⊠ኊ⊨ወ⊬ጉ⊰ፋ⊱ᎏ⊱Ꮄ⊚Ꭷ⊃᎜≫᎒≒ᎊ∹ᎄ∟፿∄፽⇩፼⇗፽⇗᎝⇷᎟∕Ꭳ∳Ꭺ≏Ꮄ≩Ꮑ⊃Ꮡ⊜Ꮳ⊳ᏹ⊮ᓎ∾ᒳ⇏ᒝⅢᒌ⃵ᑿ⃵ᏹℍᏤΩᏒ⅀Ꮒ⅚ᎶⅶᎬ→Ꭴ↯Ꭰ⇍᎝⇍፽↚ᎃⅦᎏℯᎠ⃷Ꮇ⃷ጭ⃆ጭ⃆ᑺῲᑷ ᑛ“ᐻ‭ᐙ›Ᏽ⁅Ꮞ⁌Ꭵ⁑፹⁒ፋ⁒ጭ…ጭ…ፒ‥፰•ᎎ”Ꭻ‖Ꮘ‎Ꮴ ᏿ῷᐛῨᐵῘᑏ῅ᑩᾱᒂᾛᒚὩᓉἯᓶḱᖛᵺᘌᶆᘣ;ፋᘹᏛᗥᑉᖫᐠᕢᎫᔻᎫᇚ፾ᇚ፾ᔨፔᔞጦᔗዳᔒኻᔑኍᔒቛᔖሣᔝᇦᔦᇣᔜሑᔂሻᓨቡᓎኃᒵኡᒜኺᒃዐᑫዡᑒደᐹዽᐜገᏻ጑ᏖጘᎭጝᎁጟፐጠጜጠᅒጣᄦጬჿጺოፎႿ፧Ⴅᎆ႐ᎫၿᏕၳᐁႎᐧႬᑇ჌ᑡხᑵᄒᒃᄹᒌᅢᒏᆍᒌᆻᒂᇦᑱሐᑙሸᐻ቞ᐖኃᏪእᎸዅᎸጉᏹዘᐕዅᐯ኷ᑒ዇ᑮ዗ᒂየᒏዹᒙጏᒠጩᒢፄᒢ፣ᒠᎁᒀᎍᑡ᎕ᑄ᎙ᐨ᎙ᐍ᎘Ᏹ᎔ᎸᎉᎸᎲᏕᎷᏳᎺᐭᎻᑧᎷᒠᎰᒠᑠᑦᑚᐫᑘᏰᑚᎸᑟᎸᒇ᏷ᑽᐔᑻᐰᑻᑌᑽᑧᒁᒃᒇᒠᒏᒠᔪᑙᕎᐬᕤᑒᖦᑧᖛᒮᕾᓻᕣᕍᕋᖤᔶᖤᎊᖣ፯ᖠፕᖙጽᖑጦᖆጐᕹዼᕩዪᕗዙᕂዊᔫኼᔒኯᓶኤᓘኛᒷናᒔኍᑮኈᒝ቗ᓇሬᓯሂᔒᇘᔯᆰᕆᆈᕙᅢᕦᄼᕮᄘᕱჴᕯაᕩႯᕠ႐ᕓၳᕂၙᔭ၁ᔕာᓹမᓠဍᓄငᒥ࿿ᒃ࿽ᑜကᐯဇᏼနᏃဥ᎑့፣၊ጹၞጔၳዲႊዔႢኺႻኤვኑჲኀᄒቲᄶቦᅜቝᆅ቗ᆱቓᇠቒሒቒᎠቑᏅቍᏪቇᐍሿᐰሴᑒሦᑳሗᒓህᒳᇰᓑᇙᓮᇀᔋᆥᔧᆇᕂᅦᕜᅃᕵᄞᖍᄗᖆᅉᕃᅲᔄᆓᓇᆫᒍᆻᑓᇇᐐᇎᏃᇐ፬ᇐᇽᇒᇏᇕᆢᇛᅹᇣᅒᇭᄮᇹᄌለჭሙბራႸቀ႟ቘႆቴၭኔၓ኷်ጇဆ኶လቴါቂဵሞးሒးᇵဵᇈိᆍဟᅃဋჾ࿽რ࿺Ⴥ࿸Ⴉ࿺ႏ࿾ၶငၝဍ၆မုဧမ့င။࿲ၞ࿣ၲ࿕ႇ࿈႞྽Ⴖྴაྫྷძྦᄇྶჯ࿇მ࿙჊࿫Ⴝ࿾ႲဒႪဧႥြႤၵႫ႑Ⴔა჊ᄅკᄛოᄮჟᅈოᅦთᆉჍᆰჀᆴ჊ᅾჸᅐᄩᄨᅝᄗᅷᄈᆒჺᆭხᇉფᇦნሃზሠგሾ჏ቝ჎ቼႜቿၭ኉၁ኘမኮစኼ࿴ዌ࿤ዞ࿖ደ࿊ጄ࿀ጙྸጯྲፆ࿘ጷ࿿ጬဥጥ၊ጣၦጤၽጧ႐ጫ႟ጱႶጼ჊ፊლፚყ፬ჰᎀჶ᎗ჹᎱჸᏌჶᏫ჈ᏸႡᐈၿᐜၤᐲ၎ᑋဿᑨံᒇဳᒩးᓖၔᒹၲᒣ႒ᒔႴᒋჄᒌგᒏპᒕყᒜჯᒦჴᒲჷᓁჸᓑჸᓤჴᓻჭᔓქᔪმᕁჁᕮ႟ᖛၑᗲမᘭ࿽ᙛ࿩ᚅ࿞ᚫ࿛ᚼ࿚ᛍ࿚ᛛ࿝ᛩ࿡ᛵ࿧᛿࿯ᜉ࿸ᜑဃ᜗တ᜝ရ᜝ဳ᜚ြ᜖၄ᜐ၊ᜉ၎ᜁၑᛷၑ᛫၎ᛑ၃ᚬျᚇးᙬြᙜ၁ᙊ၉ᘺၕᘪၤᘜၶᘏႌᘂႥᗷჂᗭხᗡᄜᗘᅋᗓᅼᗑᇂᗔሊᗝቔᗬኟᘀዡᘕፋᘹ፭ᘥ;↠ߚⅦߦℰߴ⃾ࠅ⃐ࠗ₦ࠫⁿࡂ⁜࡚‽ࡵ”࢖ ࢻῪࣣῗऎῈ़᾽७ᾷঢᾴ৚ᾴ୸ᾳ஢ᾯோᾩ௲ᾠగᾕ఺ᾈ౛ί౻ὥಙὓರἿ೉Ἅ೻ỏയẅ൥Ṿ൞ắജỗ೜ỷಞἃಀἎౣἝ఩Ἠ௦Ἧசἱୄἱ৕ἲদἶॹἻॏὄध὎ःὛ࣠Ὢࣁὼࢤᾎࢍᾣࡵᾼ࡝Ῐࡅ‛ࠒߞ ߸ῊࠉᾝࠐᾅࠒὫࠑὍࠌἬࠅἇ߻ếߨẂߛṎߓḥߐḉߒᷯߕᷕߜᶽߤᶦ߰ᶐ߽ᵻࠎᵧࠠᵕ࠴ᵄࡉᴶ࡟ᴨࡷᴝ࢏ᴓࢨᴋࣃᴄࣟᴧࢾᴺࢭᵖ࢘ᵱ࢈ᶉࡿᶟࡼᷕࢃᷱࢌḵࢢṪࢱẀࢵẓࢷắࢵỎࢰỰࢧἕ࢛ỗࣚẦएẂऺṫज़ṞॴṒএṈফḿ৊ḹ৪Ḵ਋Ḳਯḱ੔᷿੘᷐੡ᶻ੩ᶦੱᶑ੼ᵾઈᵪખᵘદᵈશᴺૉᴮ૜ᴤ૱ᴜଇᴗଞᴻଏᵡ଄ᶇ૽ᶭૻ᷅ૻᷜ૾᷹଄ḓଐḩଡḼସṍ୒ṗ୭ṝஉṝ஧ṛ௃ḭௐḆ௠ᷤ௴᷉ఊᶳణᶤీᶛ౟ᶘಁᶝಬᶬಜᶻಏ᷋ಃᷜ౺ᷭ౳᷾౮Ḑ౫ḣ౪Ḳ౫Ḿ౮ṉ౳Ṓ౺ṙಃṞ಍ṡಚṢ಩ṝ೏Ṗ೦ṋ೾ḾഗḮറḆ൩ᷓඥᶜ෣ᵷณᵞ฼ᵍ๣ᵂງᴿຩᵀົᵂ໊ᵇ໗ᵍ໢ᵖ໪ᵠ໰ᵬ໳ᵹ໵ᶅ໵ᶑ໴ᶛ໱ᶣ໭ᶪ໧ᶰ໠ᶳ໖ᶷ຿ᶲຢᶨ๿ᶟ๜ᶚโᶞะᶨธᶺ෾᷑෧ᷯුḒළḼඹṬධẢණởඩἢණὣධᾡඹ῜ළ—෕⁊෩⁽฀₮บↃೖⅪ಺⅖೎⅁ೠ℩೯ℎ೻⃲ഄ⃓ഋ₲ഏ₏഑‿ഌᾖ೾ὠ೹ᾣಾῥಋ…ౠ⁥఼₣డ⃠఍⃽ఆℛంℸ௿⅔௾ↅఀ↸ఈ⇬ఔ∡ద−౭⇿ಱ⇦ೲ⇈യ↙൸ℯฑℐแ⃺๬⃭ຑ⃩ຢ⃨ະ⃪ໃ⃯໖⃸໩℅໼ℙ༐ℯ༟ⅇ༨Ⅰ༫ⅱ༩ↁ༥↑༝↢༓↰༈↻໼⇁໮⇃ໟ⇂໖↿໎↺໇↲ໂ↩ຽ↞຺ↁຸⅵຼ⅙ູ⅍ຶ⅄ັℽຫℸຣℵບℳຐℶຉℹ๹⅀๩⅊๘⅗็ⅼม↮෷∂ය≄උ≤൲⊁ൗ⊜ഺ⊴ജ⋉೻⋝೙⋭ವ⋻ಏ⌎౎⌛ఆ⌣ஶ⌦୞⌦ଜ⌥૯⌢ૄ⌝છ⌖ੵ⌍੐⌂ਭ⋵਌⋦৭⋖৒⋂শ⊬চ⊔ॾ≹ॡ≚ृ∕इₗਹₗ੸ⅵ়↕ৎ↱৥⇋਀⇢ਞ⇶ੀ∇੥∕એ∡઼⇫ૌ⇓૓↜૞Ⅷૡⅆ૟℗૘⃝્ₗઽₗ૮⃆૸⃷૿℩ଃ⅛ଅ→ଃ⇅૾⇳૶∞૫∞௴⇪௥↶௚ↄ௓⅒௑ℤ௓⃴௘⃃௡ₑ௭₏िₐढₔआₛ࣪₤࣏₰ࢴ₿࢛⃐ࢂ⃤ࡩ℆ࡇℱࠣⅤ߿↠ߚⅸߢ;ᬃߐ᥇ࢷ᥇ࣳᨤࡼᨼࢨᩓࣗᩦई᩸ऺ᪇८᪔ত᪞ড়᪥ਗᩘਯᨔੀ᧙੊ᦧ੍᥽੊᥇ੂ᥇੫ᦀੳᦳੵ᧫ੳᨦ੫ᩤ੝᪥ੋ᪡થ᪗૽᪆୒᩻୻ᩯதᩒ஘ᨳஎᨒஅ᧰୾᧍୸ᦧ୴ᥗୱ᥇ୱ᥇஘ᥪ஖ᦦச᧣தᨢஶᩡ௏ᨅಒ᧟೛ᦾഘᦖഋ᥯ം᥈೽ᤣ೻ᤄ೽ᣢഄᢾഎᢘഝᡮരᡃേ᠔ൢ៤ඁ៏൸᠚೩ᡂಝᡞ౟ᡷతᢌ௬ᢝஷᣉ஫ᣴ஢ᤜஜ᥃஘᥃ୱ᣹୵ᢳ୿ᣃଵᣏ૪ᣖટᣘ੔ᤐ੡᥃੫᥃ੁᤑ਷ᣘਪᣏ৥ᢵु᥃ࣵ᥃ࢹᢤऋᢘࣦᢊࣄ᡻ࢣᡫࢆᡚࡪᡈࡑᠴ࠺ᠠࠦ᠋ࠔ៵ࠅ៝߸ៅ߭ឬߥទߟ᝶ߛ᝙ߚ᜾ߛᜥߞᜍߣᛶ߫ᛡߴᛎࠀᚻࠎᚫࠞ᚛࠰ᚎࡄᚁ࡛ᙶࡳ᙭ࢎᙥࢪᙞࣉᙙ࣪ᙺࣅᚊࢷ᚛ࢫᚫࢢᚼ࢛ᛌࢗᛝ࢖᛹࢙᜚ࢢ᜷ࢯᝒࣂᝫࣛគࣹមछឫॄួॱ៌ত៟৲៬੄៴ચ៷૴៏૝ឧ્កૄ᝙ી᜺ૃᜟ૊ᜇ૕ᛳ૥ᛣૺᛖଔᛍଲᛇ୔᛫୔᜔ୗ᜻ୟᝠ୬ឃ୿បஊអ஖ឰணុலៅு៎௒៕௤៚௷១ౄ០ౠ៛ಂ្ಫំ೚ឣോᝳූប෫៎ී᠃සᠴමᡠඵ᡹බᢔයᢱවᣏ෈ᤒෟᥜ฀ᨯഓ᪔ಛ᪽౤᫢మᬄ௹ᬢ௅ᬽஒ᭔ୠ᭨ମ᭸૽ᮋહᮘੵᮠ਱ᮣ৭ᮠধᮙॡᮌझ᭻ࣙ᭤࢖ᭉࡓᬨࠑᬃߐ᫟ߣ;฻ߗಷ࣑ಠࢆ౹ࡃృࠆ௽ߐਖ਼ࢴ਴࣌਒ࣥ৴ࣿ৙छীसফॗগॶইগॸহ५ঢ়ॠਁॗਧॉੵिેउ૑ࣛ૞ࢲ૯࢑଄ࡶଟ࡟ୀࡌ୪࠾஛ࡦஏ࢈ஆ࢜஁ࢯ୿ࣂ୿ࣕ஁ࣺஊट஗ळ஡ॅ஬ॖஹ१ைॶ௘঄௩঑௻ঝఏধణরహশ౐ঽ౦ু౼ৄಓ৅಩ৃೄাೠশ೽ফചঋഺ॑൙ࣽ൶ࢎඒ࠻඲ࠀ෩ߜืߐພߔພߗພߛພߞພ߾๰ࠥ๐ࡒ฽ࡸืุ࢝ࣂ฻ࣨแऍๆभ๊ौ๏४๒উ๓ন๒৑่৹ูਠร੤෬કඣલ൉઻ೝ઻౰઻ః઻஖઻଩એ଩એஒએ௼એ౥એ೏અട੪൘਻ൻ৻ආ২අ৒ඁসൺচ൱৙ുਆംਡಳਪౕਪஷਪଚਪ੼ਪয়ਫম਱ংਹड़੆ऺ੗ज੮ࣽઌࣝરࢾ઱ࣀળࣁવࣃષࣅથ࣯ઙगઑाએ॥એ৕એ੆એશએଧ઻ଧહଅહઠહ਼હৗહॳીय૖ࣰૺࢴବࡼ୭ࢃ஛࢖ஷࢶீࣣீॉா੺ଗ੺ଁછ૪઼૔૝ા૾ાଦாଦீಧிವ஻ೃஶ೐஭ೝட೭அഃஅക౳ෲೋඤണൖൻഈී಺෋ರසಧරಞ඲ಔඥಞ඗ನඊಲർ಼ർ଩്଩്೤ംനೠകೈ೻ಹ೙ವರಷଦർଦ෶੺ಷ੺ವच്ࢲ്ੳൿੳൿ࢙ථࡵ๗ࣲ๗৩๘ૡ๙௙๙೑๜ം๤യ๱൘ຄൽຜඞູලໜෘ༅ෲ࿓ദ࿌ഞ࿄ഗ྽ഏྵഇྦྷഖྚഠྍദཱྀനཀྵഠབྷഈཌೡཉ಩ཉ௅ཉૠཉৼཉगཋࣼཐ࣡ཙࣆཥࢫ྅ࡹྤࡍྋ࠺༯ࡾ;"
    SBO_SplitParam()
    For ff=1 To 8
      ll=pts[ff]
      Sprite_Add()
    EndFor
    
    Sub Sprite_Add
      nSprite = nSprite + 1
      s = scale
      Sprite_ScalePoints()
      GraphicsWindow.PenWidth=1
      GraphicsWindow.penColor="blue"
      For x=2 To Array.GetItemCount(points)
        GraphicsWindow.DrawLine(points[x][1], points[x][2], points[x-1][1], points[x-1][2] )
      EndFor
      GraphicsWindow.DrawLine(points[1][1], points[1][2], points[x-1][1], points[x-1][2] )
      
    EndSub
    
    Sub Sprite_ScalePoints
      points = ""
      ix=0
      For x = 1 To Text.GetLength(ll)-1 Step 2
        ix=ix+1
        points[ix][1]=(text.GetCharacterCode( text.GetSubText (ll, x, 1))-2000)*s-dx
        points[ix][2]=(text.GetCharacterCode(text.GetSubText (ll, x+1, 1))-2000)*s+dy
      EndFor
    EndSub
    
    Sub SBO_SplitParam
      _param = ""
      p = 1
      name=0
      len = Text.GetLength(param)
      While p <= len
        eq = Text.GetIndexOf(Text.GetSubTextToEnd(param, p), ";")
        name = name+1
        value = Text.GetSubText(param, p , eq-1 )
        _param[name] = value
        p = p+eq
      EndWhile
      pts = _param
    EndSub


    • Edited by Tryhest Wednesday, April 29, 2020 9:30 AM
    Wednesday, April 29, 2020 9:27 AM
  • HPGL to chrs convertor: HSH629

    Wednesday, April 29, 2020 10:18 AM
  • pseudo-random dots flash: BLX167

    Thursday, April 30, 2020 3:49 AM
  • added ld effects: BLX167-0

    Thursday, April 30, 2020 3:56 AM
  • sb online has some issues with upper code:

    same code works fine in sb 0.92 and silverlight editions:

    Thursday, April 30, 2020 7:19 AM
  • it works fine even in java mysmallbasic!

    Thursday, April 30, 2020 9:12 AM
  • Rubic Cube Solver: KCJ611

    • shortened over 600 lines
    • removed sounds and msgboxes
    • ld xtension required

    Saturday, May 2, 2020 3:29 AM
  • some work-in-progress for may:

    • oneline elements
    • new font Avocode
    • SB Mona Lisa portrait
    • SB inline-zip babushka-code nesting...


    • Edited by Tryhest Sunday, May 3, 2020 7:01 AM
    Sunday, May 3, 2020 6:59 AM
  • some elements shapes: SLW394

    Monday, May 4, 2020 6:34 AM
  • updated elements: VGG857

    • 9 elements+logo
    • added moving: click and press ctrl to drag element around
    • added gradients

    Monday, May 4, 2020 9:53 AM
  • KCC416

    updated Nonki's 1d cell autom:

    • changed to fastshapes
    • autoinvert colors when rules>127 
    • removed values<65 (resulting trivial lines only)

    Tuesday, May 5, 2020 6:18 AM
  • monalisa v0.1: HTR290

    Tuesday, May 5, 2020 6:58 AM
  • monalisa v0.5: HTR290-0

    Tuesday, May 5, 2020 7:35 AM
  • hommage to eurovision song skipped this year...

    LDR445

    Tuesday, May 5, 2020 9:51 AM
  • palettes from masterpieces: XLR024

    Tuesday, May 5, 2020 7:20 PM
  • animated suprematism: JSM295

    Wednesday, May 6, 2020 7:24 AM
  • added pseudocolors: SJG459-0


    • Edited by Tryhest Wednesday, May 6, 2020 9:55 AM
    Wednesday, May 6, 2020 9:48 AM
  • (Translated by Google translator)

    Sumptuously!..

    This is real art!..

    Wednesday, May 6, 2020 11:08 AM
  • now in original colors: HJN820

    Wednesday, May 6, 2020 4:41 PM
  • Mondrian: HDG036

    Wednesday, May 6, 2020 5:20 PM
  • ascii ctrl codes: TQB329

    Friday, May 8, 2020 7:54 PM
  • b/w cottage: JCR288

    sepia cottage: JCR288-0



    • Edited by Tryhest Saturday, May 9, 2020 7:07 PM
    Saturday, May 9, 2020 6:49 PM
  • snake game update: XVS120

    • reduced to half size
    • slowered for easy play
    • darkened bg
    • removed intro

    Sunday, May 10, 2020 5:26 AM
  • ported nonki's monopoly to gw: ZQM903

    Sunday, May 10, 2020 7:26 AM
  • (Translated by Google translator)

    Delightful !

    Sunday, May 10, 2020 3:53 PM
  • old computer display demo: ZKD553-0
    Sunday, May 10, 2020 9:16 PM
  • turtle-drawn magic triangle: NVB199

    Monday, May 11, 2020 6:04 AM
  • sb online version:

    GraphicsWindow.BackgroundColor="teal"
    GraphicsWindow.penColor="darkblue"
    Turtle.Speed=10
    Turtle.PenUp()
    Turtle.Move(-100)
    Turtle.TurnLeft()
    Turtle.Move(100)
    Turtle.PenDown()
    For x=1 To 3
      Turtle.Turn(60)
      Turtle.Move(30)
      Turtle.Turn(60)
      Turtle.Move(200)
    EndFor
    Turtle.Turn(120)
    Turtle.Move(170)
    For x=1 To 2
      Turtle.PenUp()
      Turtle.Move(60)
      Turtle.Turn(-120)
      Turtle.Move(30)
      Turtle.Turn(-120)
      Turtle.PenDown()
      Turtle.Move(170)
    EndFor
    Turtle.Turn(120)
    Turtle.Move(110)
    Turtle.PenUp()
    Turtle.Turn(-60)
    Turtle.Move(30)
    Turtle.PenDown()
    Turtle.Move(-110)
    Turtle.PenUp()
    Turtle.Turn(120)
    Turtle.Move(30)
    Turtle.PenDown()
    Turtle.Move(-110)
    tx=Turtle.x
    ty=Turtle.y
    Turtle.Hide()

    Monday, May 11, 2020 6:09 AM
  • citty map v0.1: XVV124

    Monday, May 11, 2020 4:23 PM
  • pseudo 3d ellipse: ZML032

    Wednesday, May 13, 2020 9:06 PM
  • unicode units: VFW428

    Friday, May 15, 2020 7:40 AM
  • turtledraw machine v0.1: DTP492

    Friday, May 15, 2020 11:16 AM
  • turtle mach. v0.2: DTP492-0

    • added 2 designs
    • line and poly modes
    • type cmd 1 or 2 to select script

    Friday, May 15, 2020 2:17 PM
  • gturtle v 0.3 CJS180

    • added quickturtle
    • added combobox - select from combobox sample to run and press run key "<-->"
    • 3 sample designs

    Friday, May 15, 2020 7:53 PM
  • finished units list: SNN688

    Saturday, May 16, 2020 6:20 AM
  • added loops: WPB890

    Saturday, May 16, 2020 9:47 AM
  • new font Aguilia: GMC632

    Saturday, May 16, 2020 9:52 PM
  • added numerals and symbols: GMC632-0


    Sunday, May 17, 2020 5:52 AM
  • complex simplex:

    GraphicsWindow.BrushColor="transparent"
    GraphicsWindow.PenWidth=.7
    GraphicsWindow.BackgroundColor="tan"
    
    ff=2
    For n=1 To 2
      For z=1 To 2
        For x=0 To 5
          if Math.Remainder(x,2)=0 Then
            GraphicsWindow.PenColor="darkred"
          Else
            GraphicsWindow.PenColor="darkblue"
          EndIf
          e=Shapes.AddEllipse(100*ff,50*ff)
          Shapes.Move(e,100*ff*z-(z-1)*45*ff,100*ff*n-(n-1)*45*ff)
          LDShapes.RotateAbout(e,100*ff*z+50*ff-(z-1)*45*ff,100*ff*n+25*ff-(n-1)*45*ff,x*30)
        EndFor
      EndFor
    EndFor


    • Edited by Tryhest Monday, May 18, 2020 7:52 PM
    Monday, May 18, 2020 7:52 PM
  • optimised tremaux algorithm KRX737-0

    • reduced subs
    • add open dialog,capture  and delay adjust
    • changed colors, added shadows
    • removed turtle usage



    • Edited by Tryhest Wednesday, May 20, 2020 7:26 AM
    Wednesday, May 20, 2020 6:36 AM
  • u can add add user path in txt file like this one

    XOXXXOXXXXX
    X       X O
    X XXXXX X X
    X     X    
    XXX X X X  
    O   X     X
    X XXXXXXX X
    X X   X  OX
    X   X X XXX
    O X X XOX  
    XXXXX XXX  
    
    entry is at last row cell#6 from left



    • Edited by Tryhest Wednesday, May 20, 2020 7:30 AM
    Wednesday, May 20, 2020 7:28 AM
  • aquilia capitals added: VFW960

    Wednesday, May 20, 2020 12:43 PM
  • an interesting property of primes>3

    the distace btween squares of 2 consectutive primes is always divisible by 8

    can be as a new challenge of june:

    Thursday, May 21, 2020 7:29 AM
  • dir list: QPT301-1

    • sorted by xtensions

    Thursday, May 21, 2020 9:53 AM
  • an interesting property of primes>3

    the distace btween squares of 2 consectutive primes is always divisible by 8

    can be as a new challenge of june:

    Hi Tryhest, could be. But, I found why 3 is special...


    Nonki Takahashi

    Thursday, May 21, 2020 10:43 AM
    Moderator
  • an interesting property of primes>3

    the distace btween squares of 2 consectutive primes is always divisible by 8

    can be as a new challenge of june:

    Hi Tryhest, could be. But, I found why 3 is special...


    Nonki Takahashi

    the task can be to find if some prime skips this rule

    numb. 3 could obey if we skip 2 and add 1 as prime then 9-1=8

    num. 2 is very special in math bcs it's the only even prime and only num that complies to 2+2=2*2=2^2. also 2!=2

    not to mention that 2 is base for binary numbers also. many primes also can be found as 2^n-1 or 2^n+1




    • Edited by Tryhest Thursday, May 21, 2020 3:52 PM
    Thursday, May 21, 2020 3:38 PM
  • blinking eyes demo: SMC052

    images resources:

    Friday, May 22, 2020 6:08 PM
  • 14 pictionary items in one file: KBP539

    • Not, And, Or, Xor
    • Typewriter
    • Graphic,Terminal,Login
    • Grid, Array
    • Arrange, Format, Erase, Duplicate

    Saturday, May 23, 2020 6:26 AM
  • Continued from small basic graphic and animations and more (13)

    sb calc error:

    v[1] = 2
    v[2] = -4
    For n=3 To 100
      v[n] = 111 - 1130 / v[n-1] + 3000 / (v[n-1] * v[n-2])
    EndFor
    For n=3 To 100
      TextWindow.WriteLine(n+": "+v[n])
    EndFor
    instead of 6 it becomes 100 at 100th iteration :((


    more about:Path._floating_point_problems

    Hi Tryhest, I tried to calculate this with Excel.  The result is:

    1:  2
    2:  -4
    3:  18.5
    4:  9.378378378
    5:  7.801152738
    6:  7.154414481
    7:  6.806784737
    8:  6.592632769
    9:  6.449465934
    10: 6.348452061
    11: 6.274438663
    12: 6.218696769
    13: 6.175853856
    14: 6.14262717
    15: 6.120248705
    16: 6.16608656
    17: 7.235021166
    18: 22.06207846
    19: 78.57557489
    20: 98.34950312
    21: 99.89856927
    22: 99.99387099
    23: 99.99963039
    24: 99.99997773
    25: 99.99999866
    26: 99.99999992
    27: 100


    Nonki Takahashi

    Saturday, May 23, 2020 9:33 AM
    Moderator
  • Continued from small basic graphic and animations and more (13)

    sb calc error:

    v[1] = 2
    v[2] = -4
    For n=3 To 100
      v[n] = 111 - 1130 / v[n-1] + 3000 / (v[n-1] * v[n-2])
    EndFor
    For n=3 To 100
      TextWindow.WriteLine(n+": "+v[n])
    EndFor
    instead of 6 it becomes 100 at 100th iteration :((


    more about:Path._floating_point_problems

    Hi Tryhest, I tried to calculate this with Excel.  The result is:

    1:  2
    2:  -4
    3:  18.5
    4:  9.378378378
    5:  7.801152738
    6:  7.154414481
    7:  6.806784737
    8:  6.592632769
    9:  6.449465934
    10: 6.348452061
    11: 6.274438663
    12: 6.218696769
    13: 6.175853856
    14: 6.14262717
    15: 6.120248705
    16: 6.16608656
    17: 7.235021166
    18: 22.06207846
    19: 78.57557489
    20: 98.34950312
    21: 99.89856927
    22: 99.99387099
    23: 99.99963039
    24: 99.99997773
    25: 99.99999866
    26: 99.99999992
    27: 100


    Nonki Takahashi

    many languages suffer from same error. it's due to internal precision
    Saturday, May 23, 2020 5:35 PM
  • tv test: XLG559

    Sunday, May 24, 2020 8:52 AM
  • added halftones: NVG170

    Monday, May 25, 2020 7:35 AM
  • corrected version: NVG170-1

    • added halftoning LTR order
    • removed obsolette code to under 100 lines

    Monday, May 25, 2020 8:51 AM
  • HHX493

    Monday, May 25, 2020 11:09 AM
  • trains station v0.1: JZP672

    Wednesday, June 3, 2020 6:59 AM
  • trainz 0.2 JZP672-0

    • 6 paths added
    • start/stop 5 sec pause
    Wednesday, June 3, 2020 9:42 AM
  • v0.25: GFV187

    • traff.light introduced

    Wednesday, June 3, 2020 8:53 PM
  • trains v0.3: RHM252

    • added 10 traf. lights, 8 functional

    Thursday, June 4, 2020 7:03 AM
  • v0.35   RHM252-0

    • added railroad crossing trafficlights

    Thursday, June 4, 2020 9:52 AM
  • added car v0.4 RHM252-1

    Thursday, June 4, 2020 5:39 PM
  • handwriting demo anim: DTX862

    Thursday, June 4, 2020 8:51 PM
  • railroad crossing anim: VZG592

    Friday, June 5, 2020 4:47 PM
  • 36 traffic signs: BNZ626

    Saturday, June 6, 2020 9:54 PM
  • 5 running horses anim: WHL523

    • uses ldfastshapes for smooth anim

    Sunday, June 7, 2020 7:27 AM
  • updated horses: DBN510

    • corrected foots phase offset

    Monday, June 8, 2020 7:40 AM
  • signs arranger: NRM225

    • click&press CTRL to select sign
    • click elsewhere to move sign

    Monday, June 8, 2020 7:38 PM
  • stormy night at seaside anim: VTH672

    used images:

    Tuesday, June 9, 2020 7:58 PM
  • aviobomber MSX ported simple game: XCW338-0

    • press any key to throw bombs

     
    • Edited by Tryhest Wednesday, June 10, 2020 4:52 PM
    Wednesday, June 10, 2020 6:53 AM
  • spirofan fan-screen: SVS497

    Thursday, June 11, 2020 5:20 AM
  • lock brute-force opener: KMH176

    • lock is open when a ballcan fall down from lock center 

    Thursday, June 11, 2020 6:57 PM
  • road driving draw: JLL111

    • press a/s to turn left/right

    Friday, June 12, 2020 3:44 AM
  • UN calendary for 2020: PTW227

    • click on marked day to get description
    • may depend on datetime locale, used format isdd/mm/yy 

    Monday, June 15, 2020 5:27 PM
  • fractal plants and structures: TBT735

    Tuesday, June 16, 2020 7:32 AM
  • the line: TZR129

    Tuesday, June 16, 2020 5:10 PM
  • trivial XO game (minimal AI): JNX890

    Tuesday, June 16, 2020 9:19 PM
  • the line walking: LLN903

    • reduced to 100 lines of code
    • u can remove transparent GW if u want
    • read more about The Line at: en.wikipedia.org/wiki/La_Linea_(TV_series)


    • Edited by Tryhest Wednesday, June 17, 2020 6:53 AM
    Wednesday, June 17, 2020 6:51 AM
  • update: LLN903-0

    • added cover intro anim
    • color changed to gold


    • Edited by Tryhest Wednesday, June 17, 2020 12:38 PM
    Wednesday, June 17, 2020 12:38 PM
  • now contains 11 characters: GFT838



    • Edited by Tryhest Wednesday, June 17, 2020 5:16 PM
    Wednesday, June 17, 2020 5:14 PM
  • pentaflake: BJH252

    Thursday, June 18, 2020 7:01 PM
  • 3D starmap from apollo11 mission: QTL863

    • pan by cursorkeys
    • move by mouse
    • zoom by mswheel

    Sunday, June 21, 2020 6:49 AM
  • apollo 11 comp gone mad: TWP925

    Sunday, June 21, 2020 8:56 PM
  • infinite zoom flake: BPT735

    • zoomby mswheel. pan by curs.keys
    • prior to zoom maximize window
    • uses recursion to draw flake

    Friday, June 26, 2020 7:33 AM
  • transition to old Apple logo: RCC293

    Sunday, June 28, 2020 7:32 AM
  • turtle-drawn font: WMS487

    Monday, June 29, 2020 8:59 PM
  • update tfont: QTD483

    •  removed turtle
    • corrected chars
    Tuesday, June 30, 2020 7:27 AM
  • computer vision: BGQ728

    Wednesday, July 1, 2020 4:19 AM
  • (translated by google translator)

    It's beautiful, but it is not clear.  :)

    Wednesday, July 1, 2020 5:50 PM
  • (translated by google translator)

    It's beautiful, but it is not clear.  :)

    comp.vision is fuzzy kind))
    Wednesday, July 1, 2020 8:08 PM
  • ctrl board v0.1

    FRS092

    Wednesday, July 1, 2020 8:09 PM
  • (translated by google translator)

    But this is just beautiful !..
    Very good!..


    Thursday, July 2, 2020 9:45 AM
  • the hsl spectrum map: SFJ136

    Friday, July 3, 2020 7:24 AM
  • Txt Turtle Logo: GLN632

    Friday, July 3, 2020 8:29 PM
  • 4-parts glossary: over 25000 eng, words

    GXJ958
    GXJ958-0
    GXJ958-1
    GXJ958-2

    blue-marked words are 16chrs or longer ones, which are displayed 1st 16chrs only
    • Edited by Tryhest Monday, July 6, 2020 5:58 AM
    Monday, July 6, 2020 5:51 AM
  • DSW506

    Monday, July 6, 2020 1:16 PM
  • QKF188

    Tuesday, July 7, 2020 6:54 PM
  • RHB891

    Tuesday, July 7, 2020 8:05 PM
  • ZFC783

    Tuesday, July 7, 2020 8:22 PM
  • hi-res bug: JJF473

    (very slow!)

    Tuesday, July 7, 2020 10:18 PM
  • bridge simulator: MTJ004

    • simulates Earth, Sun, Venus, Moon, Mars, Jupiter & Pluto's gravity
    • choose planet/sun from dropdown list

    Wednesday, July 8, 2020 6:59 AM
  • bridges update: TLH893

    • 2 balls
    • 3 bridges
    • move g-options/displaying

    Thursday, July 9, 2020 5:52 AM
  • creal=-0.8
    cimag=0.156
    GraphicsWindow.Title="Julia Set"
    GraphicsWindow.BackgroundColor="darkblue"
    For v=-16 To 16 step .1
      For h=-64 To 64 step .2
        x=h/40
        y=v/20
        For i=1 To 50
          zreal=x*x-y*y+creal
          zimag=x*y*2+cimag
          IF math.Log (math.abs(zreal))>2.5 THEN
            Goto l150
          EndIf
          x=zreal
          y=zimag
        EndFor
        GraphicsWindow.SetPixel( h*5+300,250+v*10,LDColours.HSLtoRGB((zreal)*100-50 1 math.abs(zimag)+.3))
        l150:
      EndFor
    EndFor

    Friday, July 10, 2020 4:56 AM
  • txtwin 3d anim: KPK261

    Monday, July 13, 2020 7:21 AM
  • 21 game: WNQ177

    Wednesday, July 15, 2020 7:01 AM
  • simple msweeper: MQN222

    Thursday, July 16, 2020 8:38 PM
  • anim: DQJ720

    Friday, July 17, 2020 6:09 AM
  • This thread will continue to small basic graphic and animation and more (15).


    Nonki Takahashi

    Saturday, July 25, 2020 6:30 AM
    Moderator