Go-āĻ āĻļāĻ°ā§āĻ¤ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° quirks

āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻ˛ā§āĻĒā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ‡ āĻĻā§āĻŸāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯?

		
if a > b && c*2 > d {
	....
}
// и
if a <= b  { 
  continue;
}
if c*2 > d {
 ....
}


āĻāĻŸāĻŋ āĻ¸āĻŦ āĻāĻ•āĻŸāĻŋ "āĻŦā§āĻ°ā§‡āĻ¨ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻŽ-āĻ†āĻĒ" āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛; āĻ†āĻŽāĻžāĻ•ā§‡ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° [-x....x] āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻŦāĻĄāĻŧ āĻœā§‹āĻĄāĻŧ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦā§‹āĻ¤ā§āĻ¤āĻŽ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻ†āĻŽāĻŋ āĻ­āĻžāĻŦāĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻœā§‹āĻĄāĻŧ āĻ•āĻŋ āĻ¨āĻž āĻ¤āĻž āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻŋ 1 āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ• āĻ—ā§āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ•āĻ¤āĻŸāĻž āĻ­āĻžāĻ˛ā§‹ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻšāĻŦā§‡āĨ¤


//Ņƒ Ņ‡ĐĩŅ‚ĐŊŅ‹Ņ… Ņ‡Đ¸ŅĐĩĐģ ĐŋĐžŅĐģĐĩĐ´ĐŊиК йиŅ‚ вŅĐĩĐŗĐ´Đ° Ņ€Đ°Đ˛ĐĩĐŊ 0
value & 1 == 0
//vs ĐēĐģĐ°ŅŅĐ¸Ņ‡ĐĩŅĐēиК ĐŧĐĩŅ‚Од
value % 2 == 0

āĻ—ā§‹-āĻ¤ā§‡ āĻ†āĻŽāĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻŦāĻŋāĻ¸ā§āĻ¤ā§ƒāĻ¤ āĻ¨āĻ¯āĻŧ, āĻŽāĻžāĻ¤ā§āĻ° āĻĻā§‡āĻĄāĻŧ āĻŦāĻ›āĻ°ā§‡āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ§āĻ°ā§‡, āĻ†āĻŽāĻŋ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ¯āĻĻāĻŋāĻ“ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ‰āĻĒāĻ¯ā§‹āĻ—ā§€ āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ (āĻ­āĻžāĻ˛, āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ‰āĻšā§āĻš-āĻ˛ā§‹āĻĄ HTTP āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ›āĻžāĻĄāĻŧāĻž), āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻŋ āĻāĻŸāĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ GoLand āĻ–ā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ˛āĻŋāĻ–ā§āĻ¨


package main
import (
	"fmt"
	"log"
	"math"
	"math/rand"
	"time"
)
const size = 100000000 //math.MaxInt32*2
type Result struct {
	Name     string
	Duration time.Duration
	Value    int32
}

func main() {
	log.Println("initial array capacity: " + fmt.Sprint(size))
	var maxValue int32
        // БŅƒĐ´ĐĩĐŧ ваŅ€ŅŒĐ¸Ņ€ĐžĐ˛Đ°Ņ‚ŅŒ диаĐŋаСОĐŊ Ņ‡Đ¸ŅĐĩĐģ ĐžŅ‚ ĐŧиĐŊиĐŧĐ°ĐģŅŒĐŊĐžĐŗĐž 
        // Đ´Đž ĐŧĐ°ĐēŅĐ¸ĐŧĐ°ĐģŅŒĐŊĐžĐŗĐž. ЧĐĩĐŧ ĐŧĐĩĐŊŅŒŅˆĐĩ диаĐŋаСОĐŊ, Ņ‚ĐĩĐŧ йОĐģŅŒŅˆĐĩ 
        // ĐŋŅ€ĐžŅ†ĐĩŅŅĐžŅ€ĐŊĐžĐŗĐž вŅ€ĐĩĐŧĐĩĐŊи ĐąŅƒĐ´ĐĩŅ‚ ŅƒŅ…ОдиŅ‚ŅŒ ĐŊĐ° ĐžĐŋĐĩŅ€Đ°Ņ†Đ¸ŅŽ 
        // ŅŅ€Đ°Đ˛ĐŊĐĩĐŊиŅ Ņ‚ĐĩĐēŅƒŅ‰ĐĩĐŗĐž Ņ‡Đ¸ŅĐģĐ°, Ņ Ņ€Đ°ĐŊĐĩĐĩ ĐŊаКдĐĩĐŊĐŊŅ‹Đŧ и ĐŊаОйОŅ€ĐžŅ‚
	for maxValue = 128; maxValue < math.MaxInt32/2+1; maxValue = maxValue * 2 {
		test(maxValue)
	}
}

func test(maxValue int32) {
	log.Println("max threshold: " + fmt.Sprint(maxValue))
	arr := make([]int32, size)
	for i := range arr {
		arr[i] = rand.Int31n(maxValue)
                // в Ņ‚ĐĩŅŅ‚ОвŅ‹Ņ… Đ´Đ°ĐŊĐŊŅ‹Ņ… ĐŊĐ°Đŧ ĐŊŅƒĐļĐŊŅ‹ и ĐžŅ‚Ņ€Đ¸Ņ†Đ°Ņ‚ĐĩĐģŅŒĐŊŅ‹Đĩ Ņ‡Đ¸ŅĐģĐ° 
		sign := rand.Intn(2)
		if sign == 1 {
			arr[i] = -arr[i]
		}
	}

        // СаĐŋŅƒŅĐēĐ°ĐĩĐŧ Ņ‚ĐĩŅŅ‚ "Đ´ĐĩĐģĐĩĐŊиĐĩ Ņ ĐžŅŅ‚Đ°Ņ‚ĐēĐžĐŧ"
	result := maxEvenDividing("maxEvenDividing", arr)
	log.Printf(result.Name+"t result: "+fmt.Sprint(result.Value)+"ttduration %s", result.Duration)

        // СаĐŋŅƒŅĐēĐ°ĐĩĐŧ Ņ‚ĐĩŅŅ‚ "ĐēĐžĐŊŅŠŅŽĐŊĐēŅ†Đ¸Đ¸"
	result = maxEvenConjunction("maxEvenConjunction", arr)
	log.Printf(result.Name+"t result: "+fmt.Sprint(result.Value)+"ttduration %s", result.Duration)
}

func maxEvenDividing(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value > current && value%2 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

func maxEvenConjunction(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value > current && value&1 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

āĻ†āĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒāĻžāĻ‡ āĻ¯āĻž āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ āĻ¯āĻ¤ āĻŦā§‡āĻļāĻŋ āĻšāĻŦā§‡, āĻ•āĻžāĻ°ā§āĻ¯āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ¯āĻŧ āĻ¤āĻ¤ āĻŦā§‡āĻļāĻŋ āĻ“āĻ āĻžāĻ¨āĻžāĻŽāĻž āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤

āĻ¤ā§āĻ˛āĻ¨āĻžmax threshold: 128
maxEvenDividing result: 126 duration 116.0067ms
maxEvenConjunction result: 126 duration 116.0066ms

max threshold: 16384
maxEvenDividing result: 16382 duration 115.0066ms
maxEvenConjunction result: 16382 duration 111.0064ms

......

max threshold: 8388608
maxEvenDividing result: 8388606 duration 109.0063ms
maxEvenConjunction result: 8388606 duration 109.0062ms

max threshold: 16777216
maxEvenDividing result: 16777214 duration 108.0062ms
maxEvenConjunction result: 16777214 duration 109.0062ms

max threshold: 33554432
maxEvenDividing result: 33554430 duration 114.0066ms
maxEvenConjunction result: 33554430 duration 110.0063ms

max threshold: 67108864
maxEvenDividing result: 67108860 duration 111.0064ms
maxEvenConjunction result: 67108860 duration 109.0062ms

max threshold: 134217728
maxEvenDividing result: 134217726 duration 108.0062ms
maxEvenConjunction result: 134217726 duration 109.0063ms

max threshold: 268435456
maxEvenDividing result: 268435446 duration 111.0063ms
maxEvenConjunction result: 268435446 duration 110.0063ms

āĻāĻŸāĻž āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ¯ā§‡ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻĄā§‡āĻŸāĻžāĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§‡āĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻ˛ā§‹āĻĄ (āĻ†āĻŽāĻžāĻ° i5-2540M āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡) āĻĒā§āĻ°āĻžāĻ¯āĻŧ 20..30% āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ, GoLand āĻĨā§‡āĻ•ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻāĻ–āĻ˛ āĻ•āĻ°āĻž āĻŽā§‡āĻŽāĻ°āĻŋ āĻ—āĻĄāĻŧā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 813MB - āĻāĻŸāĻŋ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻžāĻ•ā§‡āĻ“ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĄāĻŋāĻ¸ā§āĻ•ā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻ•ā§‡āĻ¸ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻāĻŦāĻ‚ āĻāĻ–āĻ¨, āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ–āĻ°āĻšā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻšāĻŋāĻ¨ā§āĻ¤āĻžāĻ­āĻžāĻŦāĻ¨āĻž āĻ•āĻ°ā§‡, āĻ†āĻŽāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻļāĻ°ā§āĻ¤ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŸāĻŋ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻŋ

		
if value > current && value&1 == 0 {
	current = value
}

āĻ‰āĻĒāĻ°

		
if value <= current {
        continue;
}
if value&1 == 0 {
	current = value
}

āĻ†āĻŽāĻŋ āĻ†āĻŦāĻžāĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻžāĻ‡... āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ•āĻŋāĻ›ā§ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°āĻ›āĻŋ āĻ¨āĻž :)

āĻ•āĻžāĻ°ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻž āĻ¸āĻŽāĻ¯āĻŧāĻŸāĻŋ āĻļāĻ¤āĻžāĻ‚āĻļā§‡āĻ° āĻļāĻ¤āĻžāĻ‚āĻļ/āĻ­āĻ—ā§āĻ¨āĻžāĻ‚āĻļā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ†āĻ° āĻ†āĻ˛āĻžāĻĻāĻž āĻšāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ 10..15% āĻĻā§āĻŦāĻžāĻ°āĻžāĨ¤ āĻ†āĻŽāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ†āĻ°āĻ“ 2āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŋ:

		
func maxEvenDividing2(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value <= current {
			continue
		}

		if value%2 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

func maxEvenConjunction2(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value <= current {
			continue
		}
		if value&1 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

āĻ†āĻŽāĻŋ āĻāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ‡ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ›āĻŦāĻŋāĻŸāĻŋ āĻĒāĻžāĻ‡:āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻ•ā§āĻˇāĻŽāĻ¤āĻž: 100000000

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 128
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 126 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 116.0066ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 126 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 79.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 126 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 114.0065ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 126 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 83.0048ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 256
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 254 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 111.0063ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 254 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 254 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 110.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 254 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0046ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 512
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 510 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 114.0066ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 510 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 510 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 110.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 510 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0046ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 1024
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 1022 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0063ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 1022 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 1022 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 111.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 1022 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 81.0047ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 2048
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 2046 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 114.0065ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 2046 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 79.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 2046 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 113.0065ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 2046 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 81.0046ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 4096
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 4094 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 114.0065ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 4094 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0046ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 4094 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 111.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 4094 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0045ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 8192
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 8190 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 107.0062ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 8190 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 8190 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 111.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 8190 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 16384
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 16382 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0063ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 16382 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 16382 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 108.0062ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 16382 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 32768
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 32766 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 112.0064ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 32766 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 32766 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0062ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 32766 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0045ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 65536
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 65534 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0062ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 65534 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 75.0043ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 65534 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 65534 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 79.0045ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 131072
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 131070 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 108.0061ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 131070 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 76.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 131070 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 110.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 131070 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0046ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 262144
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 262142 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 110.0063ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 262142 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 76.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 262142 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 107.0061ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 262142 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0044ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 524288
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 524286 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0062ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 524286 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 524286 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0062ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 524286 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0046ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 1048576
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 1048574 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0063ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 1048574 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 1048574 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 114.0066ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 1048574 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0044ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 2097152
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 2097150 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 111.0064ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 2097150 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 79.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 2097150 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 112.0064ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 2097150 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 4194304
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 4194302 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 111.0063ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 4194302 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 4194302 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 111.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 4194302 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 8388608
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 8388606 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0062ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 8388606 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 8388606 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 114.0065ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 8388606 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0045ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 16777216
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 16777214 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0062ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 16777214 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 16777214 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 16777214 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 33554432
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 33554430 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 113.0065ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 33554430 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 33554430 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 110.0063ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 33554430 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0045ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 67108864
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 67108860 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 112.0064ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 67108860 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 77.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 67108860 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 112.0064ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 67108860 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0046ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 134217728
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 134217726 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0063ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 134217726 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 78.0044ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 134217726 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 114.0065ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 134217726 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 81.0047ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 268435456
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 268435446 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 111.0064ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 268435446 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 79.0045ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 268435446 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 114.0065ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 268435446 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 79.0045ms

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĨā§āĻ°ā§‡āĻļāĻšā§‹āĻ˛ā§āĻĄ: 536870912
maxEvenDivding āĻĢāĻ˛āĻžāĻĢāĻ˛: 536870910 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 107.0062ms
maxEvenDiving2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 536870910 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 76.0043ms
maxEvenConjunction āĻĢāĻ˛āĻžāĻĢāĻ˛: 536870910 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 109.0062ms
maxEvenConjunction2 āĻĢāĻ˛āĻžāĻĢāĻ˛: 536870910 āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 80.0046ms

āĻ†āĻŽāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ‡āĻ¨āĻŋ āĻ•ā§‡āĻ¨ āĻ—ā§‹ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°ā§‡ āĻ¨āĻž āĻāĻŦāĻ‚ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻļāĻ°ā§āĻ¤āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡, āĻāĻŽāĻ¨āĻ•āĻŋ āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋ āĻŽāĻŋāĻĨā§āĻ¯āĻž āĻšāĻ˛ā§‡āĻ“āĨ¤ āĻ…āĻĨāĻŦāĻž āĻšāĻ¯āĻŧāĻ¤ā§‹ āĻ†āĻŽāĻžāĻ° āĻšā§‹āĻ– āĻļā§āĻ§ā§ āĻāĻžāĻĒāĻ¸āĻž āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ•ā§‹āĻ¨ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ­ā§āĻ˛ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›āĻŋ āĻ¨āĻž? āĻ…āĻĨāĻŦāĻž āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻļā§‡āĻˇ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡? āĻ†āĻŽāĻŋ āĻŦā§āĻĻā§āĻ§āĻŋāĻŽāĻžāĻ¨ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœāĻ¨ā§āĻ¯ āĻ–ā§āĻļāĻŋ āĻšāĻŦā§‡.

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯: āĻšā§āĻ¯āĻžāĻ, āĻļā§āĻ§ā§ āĻŽāĻœāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻŋ āĻœāĻžāĻ­āĻž 5 āĻāĻŦāĻ‚ āĻœāĻžāĻ­āĻž 7/8-āĻ āĻāĻ•āĻ‡ āĻ°āĻ•āĻŽ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ - āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°, āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻ‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨