Login
    
Login

15 September 2009 ~ 42 Comments

การแก้ไขปัญหา pfSense – Squid Proxy ทำงานช้า

สาเหตุที่ pfSense + squid proxy ทำงานช้าเนื่องจาก pfSense ถูกตั้งค่าเริ่มต้นสำหรับทำหน้าที่เป็น Firewall Internet Gateway เมื่อเราลง package เสริมก็เลยอืดๆๆ อย่างที่เจอกัน ตอนนี้มีวิธีแก้แล้วครับ..

1. ใช้โปรแกรม Putty สำหรับ Remote ไปยัง Text Mode และเลือกข้อ 8 เพื่อเข้าสู่ Shell, จากนั้นเปิดไฟล์ด้วยคำสั่ง vi /boot/loader.conf ตามภาพเลย

2. ปรับแต่งค่างต่าง ๆ ตามนั้น การยกเลิกคำสั่งให้ใส่ เครื่องหมาย # ด้านหน้า
จริงๆ แล้ว kern.ipc.nmbclusters=”0″ จะลบทิ้งก็ได้นะ

Speed Test โดยไม่ผ่าน Proxy

Speed Test ผ่าน Proxy หลังจากปรับแต่งแล้ว

** ตอนนี้กำลังใช้อยู่ รู้สึกว่าเร็วขึ้นเยอะเลยครับพี่น้อง…. จับภาพ before + after มาดูบ้างนะ

บทความที่เกี่ยวข้อง

 

42 Responses to “การแก้ไขปัญหา pfSense – Squid Proxy ทำงานช้า”

  1. 3sso 15 September 2009 at 11:52 pm Permalink

    squid ใน pfSense นี้้้ใช้กับร้านเกม ได้ไหมครับ คือให้เก็บแพทช์อัพเดทเกมต่างๆ น่ะครับ

  2. sysnap 16 September 2009 at 9:36 am Permalink

    ถ้าเอาไปทำหน้าที่เป็น Loadbalance แล้วใช้ Linux อื่นๆ ทำหน้าที่ proxy + patch game น่าจะเหมาะสมกว่าครับ, ไม่จำเป็นต้องแยกเน็ต แยกเกมส์ให้เสียเวลา

  3. ratz 16 September 2009 at 9:58 am Permalink

    - ทำอย่างไรครับ ให้ Lightsquid ขึ้นชื่อ User ที่ Login อ่ะครับ
    - และทำอย่างไรครับให้ Lightsquid มันแสดงรายละเอียดของ LogFile ให้ละเอียดกว่านี้
    ผมว่ามันบอกว่าเข้าเว็บไหนแค่นั้นเอง แต่ไม่ได้บอกว่าเข้าไปทำอะไรอ่ะครับ

  4. naihin 16 September 2009 at 3:45 pm Permalink

    ถ้าจะให้ Lightsquid แสดงรายละเอียดว่าไปทำอะไรบ้างนี่ ผมว่ามันไม่ใช่แล้วมั่งครับ พรบ. เอาแค่ว่าใครไปทำอะไรที่ไหน แค่นั้นเอง เหมือนบุรุษไปรษณีย์ มีหน้าที่แค่รู้ว่าใครจะส่งอะไรไปที่ไหน รับมาเมื่อไร ส่งถึงเมื่อไร แต่ไม่จำเป็นต้องรู้ว่าเนื้อหาในจดหมายว่าอย่างไร

  5. naihin 16 September 2009 at 3:46 pm Permalink

    ตามบทความนี่ได้ทดสอบดูแล้วครับ DHCP ไม่จ่ายครับผม พอแก้กลับ ใช้งานได้ปกติครับ

  6. laontalk 16 September 2009 at 9:50 pm Permalink

    เอ๋.. DHCP ผมก็ทำงานปกตินะครับ ตามตัวอย่างเป็นวิธีการปรับ cache ของ Squid มันไม่น่าจะส่งผล DHCP ได้, งั้นลองแบบนี้ดูหน่อยละกัน

    # kern.ipc.nmbclusters=”0″

    แค่ยกเลิกตรงนี้บรรทัดเดียว อย่างอื่นให้เป็นค่าเริ่มต้นหมด แล้ว restart ใหม่, ผลเป็นยังไงแจ้งด้วยนะครับ..

  7. naihin 17 September 2009 at 8:54 am Permalink

    # kern.ipc.nmbclusters=”0″

    ได้ล่ะครับ ขอทดสอบสักระยะก่อนนะครับ ขอบคุณครับ

  8. qzvt 22 September 2009 at 2:11 am Permalink

    ผ่าน proxy ก็น่าจะทำให้ speed สูงขึ้นสิ หรือว่าไม่เกิด hit เลยหรอ หรือว่าต้องกำหนดขนาดในการ cache ไว้ด้วยใน squid.conf

  9. ratz 22 September 2009 at 3:57 pm Permalink

    ————คุณ naihin———————–

    ** และถ้าในกรณีมีคนทำผิดจริงละครับ เช่น มี User คนหนึงไป Upload ไฟล์ชื่อ A ไปยังเว็บ B ในเวลาๆนึงของวันนั้น แต่ก็ดันมี User อีกคนนึงไปเข้าเว็บ B นั้นพอดี และเราจะรู้ได้ยังครับว่าใครทำผิด…

  10. geradt 23 September 2009 at 2:44 pm Permalink

    สวัสดีครับ
    มีปัญหาถามหน่อยครับ
    คือ ทุกๆชั่วโมง ระบบ ภายในโรงเรียน จะใช้เนต ไม่ได้ทุกๆชั่วโมง ส่วนใหญ่จะเป็นช่วง นาทีที่ 25 ของแต่ละชั่วโมง ผมเช็กใน RDP graph ปรากฏว่า มี Packet Loss ตรงนาที ที่ 25 ตลอดเลยครับ

    ผมควรจะทำอย่างไรดีครับ โปรดช่วยด้วยนะครับ

  11. geradt 23 September 2009 at 3:14 pm Permalink

    แก้ไขด้านบนครับ RRD Graph
    นี่คือรูปครับ
    image.php?731a92acbe.jpg

  12. geradt 23 September 2009 at 3:16 pm Permalink

    http://www.freeimagehosting.net/image.php?731a92acbe.jpg

    Link รูปภาพครับ – -

  13. naihin 23 September 2009 at 5:31 pm Permalink

    ——–ratz———

    ผมไม่อยากอธิบายเรื่อง Log ให้ละเอียดมากนักนะครับ เพราะผมก็ไม่ใช่นักกฎหมาย และไม่ได้เชียวชาญอะไร ผมเห็นมีเถียงกันเยอะแยะ พอจะสรุปคำตอบที่ได้คือ พรบ.มันมีจุดอ่อนเต็มไปหมด การเอาผิดใครสักคน ไม่ได้หมายความว่าเมื่อมาดู Log แล้ว คน ๆ นั้นกระทำผิด ขอให้เรามี Log ตรงนี้เถอะว่า user A, B, C ไปเข้าเวบดังกล่าว ณ เวลาใด เจ้าหน้าที่เขาจะดูที่พยานแวดล้อมอีกมากมายกว่าจะดำเนินการเอาผิดได้ เขาจะดูความร่วมมือของเราว่า ให้ความร่วมมือในการเก็บ Log หรือ หลักฐานหรือเปล่า ยิ่งถ้าหากคุณไปเก็บรายละเอียดของเขาหมด ยกตัวอย่างเช่น Mail (ที่กำหนดไว้ว่าไม่ต้องเก็บรายเอียดว่าส่งข้อความอะไรไป) แล้วถ้าคุณไปเก็บหมดว่าเขาส่งข้อความอะไรไป นั้นก็หมายความว่าคุณเข้าถึงข้อมูลของคนอื่น โดยมิชอบ นะครับ ยกเว้นถ้าคุณบอกว่า เป็นนโยบายบริษัท กำหนดให้มีการเก็บ ก็ออกเป็นกฎระเบียบควบคุมซะ เมื่อถึงตรงนี้คุณก็จะเข้าถึงข้อมูลคนอื่นโดยชอบ ซึ่งไม่มีความผิด จะพิมพ์จนหลงประเด็นล่ะ ประมาณนี้แหละครับ สำหรับ Log ที่ทำกัน จึงไม่มีการเก็บรายละเอียดขนาดนั้นครับ

  14. laontalk 24 September 2009 at 3:29 am Permalink

    K.geradt ข้อสันนิฐานเบื้องต้น น่าจะมีโปรแกรมทำหน้าที่คล้าย Virus, Spyware or Trojan พยายามส่ง package ซึ่งไม่ได้ระบุตัวตนที่แท้จริง ออกมาเป็นช่วงเวลาตามภาพ วัตถุประสงค์เพื่อก่อกวน และโจมตีระบบเครือข่ายนั่นเอง

    วิธีตรวจสอบโดยละเอียดคงต้องใช้ Sniffer ตรวจจับดูครับ ว่ามี package ไหนผิดปกติและมาจาก IP หมายเลยใด

  15. ratz 24 September 2009 at 10:17 am Permalink

    ——–ขอบคุณครับ naihin———
    สรุปว่า เราแค่จัดเก็บไฟล์ Access.log ไว้ เท่านั้นสิครับ

  16. geradt 27 September 2009 at 8:21 pm Permalink

    ขอบคุณครับ พอมีตัวโปรแกรม sniffer เจ๋งที่คุณใช้อยู่หรือเปล่าครับ เดี๋ยวทางนี้ผมจะลอง หาดูไปด้วยครับ ขอบคุณอีกครั้งครับ ^^

  17. aotyunsir 29 September 2009 at 2:32 pm Permalink

    -ถามเรื่องการใช้ Putty หน่อยคับ ตอน log in ใส่ user name ผ่านคับ แต่ใส่ password ยัง
    ก็ Accessdenide คับแก้ปัญหายังไงดี
    -จะลง Ativirus ที่เครื่อง pfSense ได้ไหมคับ ถ้าได้เป็น Ativirus อะไรคับ
    -เราสามารถติดตั้ง package ผ่าน command line ได้ไหมคับ ใน pfSense ถ้าได้ทำยังไงคับ
    ขอบคุณคับ

  18. laontalk 29 September 2009 at 3:19 pm Permalink

    - login ใน putty ใช้ username: root, password: xxxx
    - Antivirus Package – HAVP antivirus
    - ตามหลักการสามารถทำได้ครับ แต่ติดตั้งผ่านเว็บสะดวกสุดแล้ว

  19. aotyunsir 30 September 2009 at 2:06 am Permalink

    -ขอบคุณมากคับ

  20. aotyunsir 30 September 2009 at 2:13 am Permalink

    รบกวนอีกทีคับ คือว่าที่เครื่อง pfSense มันใช้ memory usege 80%-เกือบ100% เลยคับ
    จะแก้ปัญหาอย่างไรดีคับ
    ขอบคุณคับ

  21. aotyunsir 30 September 2009 at 2:19 am Permalink

    อีกทีคับ คือ Antivirus package และ snort package ไม่เห็นมีใน install package คับจะเพิ่มเข้ามาได้ยังไงคับ
    ขอบคุณคับ

  22. laontalk 3 October 2009 at 1:11 pm Permalink

    — K.aotyunsir —

    - memory usage 80% นี่ขอดู spec เครื่องหน่อยครับ, และได้ติดตั้ง services อะไรไปบ้าง
    - การติดตั้ง package จะต้องติดตั้งจาก System > package ให้สำเร็จก่อน ถึงจะมีรายการเพิ่มใน install package ครับ

  23. aotyunsir 4 October 2009 at 3:02 am Permalink

    ติตตั้ง package ได้แล้วคับ คืออับเกรดจาก v.1.0.1 เป็น v.1.2.3 คับ ตอนนี้เครื่องกลับมาใช้
    memory usege น้อยลงแล้วคับ พอดีลองติดตั้ง snort ดูคับ พอติดตั้งเสร็จ อับเดท Rule เรียบร้อย
    เครื่องลูกจะเข้าเน็ตอืดมากเลยคับ พอเข้าหน้าล็อคอินใส่ username&password จะ Authen นานมากคับพอ Authen เสร็จก็เออเร้อเลยคับ ลองดู snort และรีบู๊ตเครื่องดูก็ไม่หายคับ เป็นเพราะอะไรคับ

  24. aotyunsir 4 October 2009 at 6:04 pm Permalink

    ขอบคุณมากคับ

  25. aotyunsir 4 October 2009 at 6:22 pm Permalink

    ถามเรือง snort ทีคับ
    ผมติดตั้ง snort อัพเดท และสตาทเซอร์วิส แล้วพอเข้าอินเตอร์เน็ต มี authen ของ captive portal ขึ้นมาแล้วผมใส่ username และ password ที่ถูกต้องเข้าไปแล้ว Webbrowser ทำงานนาน
    มากเลยคับ แล้วขึ้นเออเร้อด้วยคับ เข้าเน็ตไม่ได้ แต่เข้าไปที่เครื่อง pfsense ได้ตามปกติคับ ผมลองถอด
    snort ดูแล้วอาการก็ยังไม่หายคับ ต้อง Restore factory อย่างเด๋วเลยคับ มีวิธีแก้ปัญหาหรือเปล่าคับ
    อยากลองใช้ snort ดูคับ
    -และ Squaid Proxy ถ้าหน่วยความจำเต็มแล้วมันจะลบให้อัตโนมัติหรือเปล่าคับ แล้วตั้งให้มันอัพเว็บไซด์
    ที่เก็บไว้ใน cach แบบ Auto ได้ไหมคับ
    ขอบคุณคับ

  26. กระดี่ 12 October 2009 at 1:07 pm Permalink

    ตามคำถาม กล่องที่ 3

    - ทำอย่างไรครับ ให้ Lightsquid ขึ้นชื่อ User ตามที่ Login

    ขอคำแนะนำด้วยครับ

    - การแก้ไข NAT ผมทดสอบเข้า board ที่แสดง IP Address มันจะแสดง IP ที่เครื่องผมเลย
    ปกติน่าจะแสดง IP ขา WAN ไม่ใช้หรือครับ

    ขอคำแนะนำอีกครับ
    ขออย่างเดียวเลย (สองอย่างสิ)

  27. laontalk 12 October 2009 at 3:42 pm Permalink

    Lightsquid แสดง user login จำได้ว่าเคยตอบไปแล้ว
    http://www.laontalk.com/2009/02/20/789/comment-page-2#comment-430

    NAT ตั้งเป็น Automatic หรือป่าวครับ
    ลองเช็คที่ http://www.ip-adress.com/ แสดง Public IP หรือ Private IP ครับ

    บางท่านถามคำถามเดียวกันซ้ำ 2 หัวข้อเลย ผมก็ไม่รู้จะตอบที่ไหน

  28. tatummm 15 October 2009 at 9:23 pm Permalink

    สอบถามปัญหาครับ คือว่าlogin เข้าเล่นเนตไปแล้ว เพิ่งจะเจอตอนหลังเล่นไปได้ ไม่นาน สัก 10-20 นาทีแล้วตัด ต้องlogin เข้าไปใหม่ ปกติจะตั้งเล่นไว้ 5 ชม แล้วตัดเนตต้องloginใหม่ ไม่ทราบว่าพอจะวิเคราะห์สาเหตุแล้ววิธีแก้ได้ไหมครับ เห็นข้างต้นบอก เจอพวกvirus trojan ไม่เข้าใจครับ ต้องหาสไนเปอร์ของอะไรครับ

  29. L 24 October 2009 at 9:06 am Permalink

    สวัสดีครับ จะขอสอบถามว่า หากเราต้องการให้ Clear Cache Squid ใหม่ต้องทำอย่างไรครับ พอดีแบบว่าผมเปลี่ยน DNS ของเว็บบริษัทใหม่แล้ว แต่้ Server ยังจำค่าเก่าอยู่ครับ เพราะ pfsense ไม่มีกด Clear Cache แบบ Smooth Wall ผมหาไม่เจอครับ

  30. RBCAT 27 October 2009 at 4:39 pm Permalink

    ผมรบกวนขอคำแนะนำในการกำหนดค่า Hard disk cache size, Memory cache size, Minimum object size และ Maximum object size ครับว่าควรจะตั้งค่าอย่าง และเพราะเหตุใด Specs เครื่อง Server RAM 2 GB, Hardisk 146 GB ครับ รองรับ Users ประมาณ 150 คน ครับ

  31. laontalk 30 October 2009 at 11:33 pm Permalink

    K.L

    การ Clear Cache Squid ลองดูตามนี้ครับ http://wiki.squid-cache.org/SquidFaq/ClearingTheCache

    ช่วงนี้ไม่ค่อยว่าง ผมก็ยังไม่ได้ทดสอบเหมือนกัน ได้ผลอย่างไรอย่าลืมบอกกันบ้างนะครับ

  32. laontalk 30 October 2009 at 11:53 pm Permalink

    K.RBCAT

    การกำหนด Hard disk cache size ขึ้นอยู่กับขนาดของ HDD และจำนวนผู้ใช้ครับ เช่น
    <- 20 = 1GB
    20-50 = 2GB
    50-100 = 3-4GB เป็นต้น

    Memory Cache Size: กำหนด 1 ในสามของ Memory ทั้งหมด เช่น 2048 / 3 = 682.67MB
    Minimum object size: ไฟล์ขนาดเล็กสุด (kb) ที่ไม่ต้องการให้เก็บ Cache ค่าปกติคือ 0
    Maximum object size: ไฟล์ขขาดใหญ่สุด (kb) ที่สามารถบันทึกลง Cache ได้ ค่าปกติคือ 4

    การที่เราจะตั้งค่าต่างๆ เหล่านี้ต้องคำนึกถึงความจำเป็น เช่น ถ้าตั้ง Max object size = 1024kb ก็จะทำให้เปลืองพื้นที่ในการจัดเก็บมากขึ้น ถ้าตั้งสูงไปก็ไม่ดีเนื่องจากไฟล์เหล่านี้อาจไม่ได้ถูกเรียกใช้บ่อยๆ ทำให้เป็นขยะเปลื่องพื้นที่เปล่าๆ

  33. anna 7 November 2009 at 11:54 pm Permalink

    ต้องการ add local user ทีเดียว 1000 user มีวิธีทำอย่างไรค่ะ

  34. laontalk 10 November 2009 at 5:15 pm Permalink

    K. Anna

    เรื่อง add local user ที่เดียว 1000 user ยังไม่มีวิธีครับ ต้องใช้วิธี add ตามปกติครับ

  35. RBCAT 6 January 2010 at 3:00 pm Permalink

    รบกวนสอบถามเกี่ยวกับการเก็บ Log ของ Squid ครับ เนื่องจากผมมีเปิดให้บริการ Proxy Server เป็น Transparent proxy เพื่อรองรับการใช้งาน Internet ของ Users ประมาณ 50 คน เปิดใช้ Services: Squid, ntop, dnsmasq, ntpd และ dhcpd แล้วปรากฏว่าใช้งานไปซัก 1 สัปดาห์ Squid จะไม่เก็บ Log ครัีบ ทั้งๆที่ผมติดตั้งมาหลายเครื่องแล้วไม่เคยเกิดปัญหานี้ครับ ผมใช้ pFsense 1.2.3 RC3 ติดตั้งบนเครื่อง PC RAM 512 k ครับ

    • laontalk 7 January 2010 at 12:06 pm Permalink

      – K.RBCAT –

      ตอนนี้ pfSense 1.2.3 Release stable ออกแ้ล้วนะครับ
      ถ้าติดตั้งใหม่ แนะนำให้ใช้เวอร์ชั่นล่าสุด

      ปัญหา Squid ไม่ทำงาน ผมยังไม่เคยจอนะ แนะนำว่าให้ Reset to Factory Default
      แล้ว Re-Configuration ใหม่ครับ หรือติดตั้ง Release Stable ไปเลย

  36. RBCAT 11 January 2010 at 8:44 am Permalink

    ขอบคุณครับ เดี๋ยวเย็นนี้ผมจะลองติดตั้งตัว Stable ดูครับ

  37. katae 19 February 2010 at 4:05 pm Permalink

    ใส่ # หน้า kern.ipc.nmbclusters=”0″ ไม่ได้ แนะนำหน่อยแล้วก็บันทึกการแก้ไขยังไง

  38. laontalk 19 February 2010 at 4:33 pm Permalink

    การใช้งาน vi editor เบื้องต้น

    vi ประกอบด้วย 2 Mode คือ

    1. Command Mode มีไว้สำหรับใช้คำสั่งตามรายละเอียดด้านล่าง, เมื่ออยู่ในโหมดการพิมพ์ จะต้องกด Esc เพื่อกลับสู่ Mode command เพื่อใช้คำสั่งต่างๆ

    2. Edit Mode ไว้สำหรับเพิ่มข้อมูล เลื่อน Cursor ต่าง ๆ แต่เราต้องใช้ Command ก่อน เช่น หากต้องการเพิ่มอักษร ต้องสั่ง I (Insert) เสียก่อน (หรือกดปุ่ม Insert ที่คีย์บอร์ด) และเมื่อพิมพ์จะเป็นการแทรกข้อความอัตโนมัติ

    การเลื่อนทิศทาง (Motivation)
    สังเกตุนะครับ มือจะไม่ขยับไปใช้ ลูกศร ขึ้นลง เลย ทำให้ทำงานได้เร็วขึ้น

    * h = เลื่อนไปทางซ้าย
    * l = เลื่อนไปทางขวา
    * j = เลื่อนลง
    * k = เลื่อนขึ้น
    * หาก พิมพ์ 8l = เลื่อนไปทางขวา 8 ตัวอักษร
    * w , W = เลื่อนไปทางขวา 1 คำ เช่น this is test เมื่อกด w จะเลื่อน Cursor ไป 1 word Cursor จะไปยืนอยู่ที่ this is test เป็นต้น
    * { = เลื่อนไปยังต้น Paragraph
    * } = เลื่อนไปยังท้าย Paragraph
    * :หมายเลขบรรทัด = เลื่อนไปยังบรรทัดที่ต้องการ เช่น :10 หมายถึงไปบรรทัดที่ 10 เป็นต้น
    * $ = ไปตัวอักษรท้ายสุดของบรรทัด
    * 0 = ไปตัวอักษรตัวแรกสุด ของบรรทัด

    การกระทำการ (Operator)

    * i = เพิ่มตัวอักษร (insert) ใช้งาน โดยพิมพ์ i แล้วพิมพ์ต่อได้เลย
    * I = เพิ่มตัวอักษรต้นบรรทัด
    * x = ลบตัวษรทีละ 1 ตัว
    * 10x = ลบตัวอักษร 10 ตัว
    * dw = ลบทั้งคำ
    * dd = ลบทั้งบรรทัด
    * yy = yank หมายถึง Copy ทั้งบรรทัด
    * p = วาง (Paste) วางบรรทัดล่างจาก Cursor อยู่
    * P = วาง (Paste) วางแทรกบรรทัดปัจจุบัน

    การจัดการเกี่ยวกับไฟล์

    * :w (filename) = save ไฟล์เป็นชื่อที่กำหนด
    * :wq = save ไฟล์ และออกจาก vi (Quit)
    * :q! = ออกจาก vi โดยไม่ Save
    * :set
    o set nu = สั่งให้ vi แสดงหมายเลขบรรทัด
    o set ic = สั่งให้เวลา Search ไม่ดูการค้น ตัวเล็ก ตัวใหญ่ ใด ๆ (Ignore Case)
    o set nu ic สั่งให้ทำงานทั้ง 2 แบบ

    ขอบคุณ
    http://www.thaiopensource.org

  39. tarn111 17 March 2010 at 2:00 pm Permalink

    ลง squid version 2.7 แล้ว reboot system แต่กลับใช้งานอินเตอร์เน็ตไม่ได้

    ใส่ # หน้า kern.ipc.nmbclusters=”0″แต่ก็ยังเล่นอินเตอร์เน็ตไม่ได้

    ไม่ทราบว่า ติดปัญหาอะไร ตรงไหน รึป่าว ค่ะ

    หรือมีวิธีแก้ไขยังไง ค่ะ

    ขอบคุณค่ะ

  40. faro 7 July 2010 at 1:50 pm Permalink

    อยากทราบว่า การที่จะเพิ่ม Packages ต้องทำอย่าวไรบ้างครับ เพราะตอนนี้ใน Module pakage ผมมีแค่ proxy squide ตัวเดียวเองครับ อยากเพิ่มตัว Report อ่ะครับ


Leave a Reply

คุณสามารถแทรกลิงค์รูปภาพประกอบ ความกว้างไม่เกิน 550px คลิกที่นี่.

PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIOC4o+C4seC4geC4geC4seC4meC5hOC4p+C5ieC5gOC4luC4tOC4lCDguYDguKPguLLguYDguIHguLTguJTguKPguYjguKfguKHguYHguJTguJnguYTguJfguKIg4LiI4Liw4LmA4LiB4Li04LiU4Lig4Liy4LiE4LmE4Lir4LiZ4LiB4LmH4LmE4LiX4Lii4LiU4LmJ4Lin4Lii4LiB4Lix4LiZIOC5gOC4iuC4t+C5ieC4reC4quC4suC4ouC4m+C4o+C4sOC5gOC4nuC4k+C4teC5hOC4oeC5iOC4oeC4teC4geC4seC4lOC4geC4seC5ieC4mSDguYDguIHguLTguJTguYPguJXguYnguJjguIfguYTguJfguKLguJnguLHguYnguJnguJvguKfguIfguIrguJnguJfguLjguIHguITguJnguITguLfguK3guYTguJfguKIsIOC4l+C5ieC4reC4h+C4luC4tOC5iOC4meC5geC4q+C4peC4oeC4l+C4reC4hyDguYDguKvguKHguLfguK3guJnguJfguYnguK3guIfguILguK3guIfguYHguKHguYgg4LmA4LiB4Li04LiU4LiW4Li04LmI4LiZ4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZ4LmB4LiX4LmJ4LmA4Lir4Lih4Li34Lit4LiZ4LmB4Lih4LmI4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZ4LmD4LiK4LmI4LmE4Lir4LihIOC4ouC4suC4oeC4ieC4seC4meC4oeC4reC4h+C4leC4suC4hOC4uOC4kyDguK3guJrguK3guLjguYjguJnguJTguKfguIfguYPguIgg4LmA4Lir4LmH4LiZ4Liq4Liy4Lii4LmA4Lil4Li34Lit4LiU4LmE4LiX4LiiIOC5g+C4meC4quC4suC4ouC4leC4suC4muC4reC4geC4quC4suC4ouC4quC4seC4oeC4nuC4seC4meC4mOC5jCwg4LiX4Liw4LmA4Lil4LmB4Liq4LiZ4LiH4Liy4LihIOC5g+C4meC4meC5ieC4s+C4oeC4teC4m+C4peC4siDguJ7guLfguIrguJ7guLHguJnguJjguLjguYzguYDguIHguKXguLfguYjguK3guJnguJXguLLguJXguLLguKHguYTguKPguYjguJnguLLguKPguKfguIfguJfguK3guIfguYTguKrguKcg4Liq4Li04LiZ4LiX4Lij4Lix4Lie4Lii4LmM4Lih4Li14LmA4LiB4Lil4Li34LmI4Lit4LiZ4LiB4Lil4LmI4LiZIOC4muC4o+C4o+C4nuC4iuC4meC5g+C4q+C5ieC5hOC4p+C5iSDguYDguKPguLLguKXguLnguIHguKvguKXguLLguJnguYTguJfguKLguIjguIfguKPguYjguKfguKHguYPguIjguKPguLHguIHguKnguLLguYPguKvguYnguKHguLHguYjguJkuLi48L2xpPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzI1MF9hZHNlbnNlPC9zdHJvbmc+IC0gPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+PCEtLQ0KZ29vZ2xlX2FkX2NsaWVudCA9IFwicHViLTI2ODI5ODQ3MjYxMzMwMzBcIjsNCi8qIDI1MHgyNTAsIOC4luC4ueC4geC4quC4o+C5ieC4suC4h+C4guC4tuC5ieC4meC5geC4peC5ieC4pyAxMi8yOS8wOCAqLw0KZ29vZ2xlX2FkX3Nsb3QgPSBcIjI5MDE2NjI4MThcIjsNCmdvb2dsZV9hZF93aWR0aCA9IDI1MDsNCmdvb2dsZV9hZF9oZWlnaHQgPSAyNTA7DQovLy0tPg0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIg0Kc3JjPVwiaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9zaG93X2Fkcy5qc1wiPg0KPC9zY3JpcHQ+PC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMjUweDI1MC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF8yNTBfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfY29udGVudF9hZHNlbnNlPC9zdHJvbmc+IC0gPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+PCEtLQ0KZ29vZ2xlX2FkX2NsaWVudCA9IFwicHViLTI2ODI5ODQ3MjYxMzMwMzBcIjsNCi8qIDQ2OHg2MCwg4LiW4Li54LiB4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZ4LmB4Lil4LmJ4LinIDEyLzI5LzA4ICovDQpnb29nbGVfYWRfc2xvdCA9IFwiMzA5OTY4MzM5MlwiOw0KZ29vZ2xlX2FkX3dpZHRoID0gNDY4Ow0KZ29vZ2xlX2FkX2hlaWdodCA9IDYwOw0KLy8tLT4NCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCINCnNyYz1cImh0dHA6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvc2hvd19hZHMuanNcIj4NCjwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy00Njh4NjAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vaW1nLmJsdWVob3N0LmNvbS8xMjV4MTI1LzMuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly9pbWcuaG9zdG1vbnN0ZXIuY29tLzEyNXgxMjUvMS5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5sdW5hcnBhZ2VzLmNvbS9iYW5uZXJzL2ltYWdlcy9iYW5uZXJfYWRzXzEyNXgxMjVfMDIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNDwvc3Ryb25nPiAtIGh0dHA6Ly93cHdlYmhvc3QuY29tL2FmZmlsaWF0ZS9iYW5uZXJzL3dwYmFubmVyMTI1eDEyNS0xM2suZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3BhZ2U8L3N0cm9uZz4gLSBTZWxlY3QgYSBwYWdlOjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy00Njh4NjAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmJsdWVob3N0LmNvbS90cmFjay9haXNob3AvYmxvZzAxPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzI8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lmhvc3Rtb25zdGVyLmNvbS90cmFjay94aXJiaXQvYmxvZzAxPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzM8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lmx1bmFycGFnZXMuY29tL2lkL3NlYXRlY2g8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfNDwvc3Ryb25nPiAtIGh0dHA6Ly93cHdlYmhvc3QuY29tL2FmZmlsaWF0ZS9pZGV2YWZmaWxpYXRlLnBocD9pZD0yOTdfMF8xXzE5PC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzU8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfNjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gZGVmYXVsdC5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hcmNoaXZlc19wYWdlPC9zdHJvbmc+IC0gQXJjaGl2ZXM8L2xpPjxsaT48c3Ryb25nPndvb19hc2lkZXNfY2F0ZWdvcnk8L3N0cm9uZz4gLSBGZWF0dXJlZDwvbGk+PGxpPjxzdHJvbmc+d29vX2FzaWRlc19lbnRyaWVzPC9zdHJvbmc+IC0gMTwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dG9faW1nPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19iZ3I8L3N0cm9uZz4gLSBkZWZhdWx0LmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9leDwvc3Ryb25nPiAtIDE1PC9saT48bGk+PHN0cm9uZz53b29fY2F0X21lbnU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9hcmNoaXZlczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9ob21lPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fY3NzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mYWNlYm9vazwvc3Ryb25nPiAtIG1hc2UudGI8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIEZlYXR1cmVkPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfZW50cmllczwvc3Ryb25nPiAtIDM8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9wb3N0czwvc3Ryb25nPiAtIDE8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gMjc5NTM0MDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gaHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL0xhb250YWxrPC9saT48bGk+PHN0cm9uZz53b29fZmxpY2tyX2VudHJpZXM8L3N0cm9uZz4gLSA2PC9saT48bGk+PHN0cm9uZz53b29fZmxpY2tyX2lkPC9zdHJvbmc+IC0gMzUzNjgxMzRATjA2PC9saT48bGk+PHN0cm9uZz53b29fZm9vdF9jYXRfbWVudTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fZm9vdF9uYXZfZXhjbHVkZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ncmF2YXRhcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2xpbmtfZGVzYzwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfbGlua190ZXh0PC9zdHJvbmc+IC0gSG9tZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl93aWR0aDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX2hlaWdodDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fbGF5b3V0PC9zdHJvbmc+IC0gZGVmYXVsdC5waHA8L2xpPjxsaT48c3Ryb25nPndvb19sb2dvPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5sYW9udGFsay5jb20vaW1hZ2VzL2xhb250YWxrX2xvZ28ucG5nPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL3N1cHBvcnQvdGhlbWUtZG9jdW1lbnRhdGlvbi9tYWluc3RyZWFtPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19vdGhlcl9lbnRyaWVzPC9zdHJvbmc+IC0gNDwvbGk+PGxpPjxzdHJvbmc+d29vX290aGVyX2hlYWRsaW5lczwvc3Ryb25nPiAtIDQ8L2xpPjxsaT48c3Ryb25nPndvb19wcm9maWxlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LXRoYWkwMV9yZXNpemUuanBnPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfYWRzX2JvdHRvbTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X2Fkc190b3A8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2hvd19mZWF0dXJlZDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X3ZpZGVvPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oZWlnaHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfd2lkdGg8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBNYWluc3RyZWFtPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAxMDA8L2xpPjxsaT48c3Ryb25nPndvb190d2l0dGVyPC9zdHJvbmc+IC0gbGFvbnRhbGs8L2xpPjxsaT48c3Ryb25nPndvb191cGxvYWRzPC9zdHJvbmc+IC0gYTo2OntpOjA7czo2NjoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LXRoYWkwMV9yZXNpemUuanBnIjtpOjE7czo2NjoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy83LXRoYWkwMV9yZXNpemUuanBnIjtpOjI7czo2MzoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy82LXdlbG92ZXRoYWkuanBnIjtpOjM7czo1NzoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy81LXRoYWkucG5nIjtpOjQ7czo2NToiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy80LWlhbV9sYW9udGFsay5qcGciO2k6NTtzOjY1OiJodHRwOi8vd3d3Lmxhb250YWxrLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtaWFtX2xhb250YWxrLmpwZyI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX2NhdGVnb3J5PC9zdHJvbmc+IC0gVmlkZW9zPC9saT48L3VsPg==