แฉแแแ แแแ แแ, แแแขแแ แแแขแแก แ แฃแกแฃแแแแแแแ แกแแฅแขแแ แจแ แคแแ แแแแฃแ แ แแแแแแแฌแแแแแก แแแแ แกแแแแแ แแกแแ แแ แแ แแก แแแคแแ แฃแแ แแ แแแแกแแแฃแแ แแแแ แแแ แขแแแ แแ แแแแแแ แแแแแแแแแแแก แแแแแแแแแแ.
แแแแแแแแก แแแแแงแแแ แฃแชแฎแแฃแ แ แฌแงแแ แแแแ แแ แฉแแแก แแแแแฌแงแแแขแแก แแแแแแแขแแ แชแแแแแ แแ แแแแแแแก, แแแแแก, แแฎแแกแ แแ แแแแแแกแขแแก แแแฆแแ แแแแแแแแแแก.
แแแแ แแ แแแ แแแ แ แแแจแ, แแแแแแ แแฆแแฌแแ แ แ แแ แแก แคแแ แแแแฃแ แ แแแแแแแฌแแแแ แแ แ แแขแแ แแ แแก แกแแญแแ แ.
แคแแ แแแแฃแ แ แแแแแแแฌแแแแ แฉแแแฃแแแแ แแ แแแจแแแแก แแ แแ แแ แแแ แแแแก แแ แแแแแ แแแแแก แจแแแแฌแแแแแก แแแแ แแก แแแแแงแแแแแแ.
แแก แแฃแชแแแแแแแแ แแแแก แฃแแ แฃแแแแแกแแงแแคแแ, แ แแ แแ แแแ แแแ แแฅแชแแแ แแกแ, แ แแแแ แช แแแกแแแแแแแแแ แแ แแกแแแ แแแกแ แฃแกแแคแ แแฎแแแแแก แฃแแ แฃแแแแแกแแงแแคแแ.
แคแแ แแแแฃแ แ แแแแแแแฌแแแแ แแ แแก แงแแแแแแ แซแแแแ แ แกแแจแฃแแแแแ แแแฌแงแแแแแแแแก แแแแแแกแ แแ แแฆแแแคแฎแแ แแก แแแแแแ: แแก แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแ แงแแแแ แแ แกแแแฃแแ แฎแแ แแแ แแ แฎแแ แแแแ แแ แแแ แแแแจแ, แแ แแแแแขแแแชแแ, แ แแ แแกแแแ แแ แแ แกแแแแแก.
แแฆแกแแแแจแแแแแ, แ แแ แแแแแแ แ แจแแแแฎแแแแแจแ แแก แจแแฃแซแแแแแแแ, แแแแแแแแแ, 8 แแแแแคแแแก แแ แแแแแแแจแ, แ แแแแแแ แแแคแแก แกแแแแแ 1000 แแแแแ แแขแแ: แแก แงแแแแแคแแ แ แแแแแ แแแแฃแ แกแแ แแฃแแแแแ แแ แแแฉแแ แแแแก แแ แแแแแแแกแแแ แแ แแก แแแแแแจแแ แแแฃแแ.
แแฃแแชแ, แแแแแกแแแแ แจแแแแฎแแแแแจแ, แกแแแ แแแกแฃแฎแแแแ แแ แ-แแ แแ แแแแฆแแแ: แแ แแแ แแแ แกแฌแแ แแ, แแ แแกแฌแแ แแ, แแ แแแกแฃแฎแแก แแแแแแ แแแ แแแฎแแ แฎแแ.
แแฃ แแแกแฃแฎแแก แแแแแ แจแแฃแซแแแแแแแ, แฎแจแแ แแ แจแแกแแซแแแแแแแ แแ แแแ แแแแก แแแฃแ แแแแแแแ แแแฌแแแแแแก แแแแแแฃแจแแแแแ, แแแแ แแแแแ แแแแฃแแ แกแแ แแฃแแแก แจแแแชแแ แแแ, แแแแแ แแขแฃแแ แแแแฎ แแ แแ แ แแแกแฃแฎแแก แแแกแแฆแแแแ.
แแ แคแแ แแแแฃแ แ แแแแแแแฌแแแแ แแแแแแงแแแแแ, แแแแแแแแแ, Windows kernel แแ Darpa แแ แแแแก แแแแ แแชแแฃแ แกแแกแขแแแแแจแ, แแแฅแกแแแแแฃแ แ แแแชแแแก แฃแแ แฃแแแแแกแแงแแคแแ.
แฉแแแ แแแแแแแงแแแแแ Z3Prover-แก, แซแแแแแ แแซแแแแ แแแกแขแ แฃแแแแขแก แแแขแแแแขแฃแ แ แแแแ แแแแก แแแกแแแขแแแชแแแแแ แแ แแแแขแแแแแแก แแแแฎแกแแแกแแแแก.
แฃแคแ แ แแแขแแช, Z3 แฎแกแแแก แแแแขแแแแแแแก แแ แแ แแ แฉแแแก แแแ แแแแจแแแแแแแแแก แฃแฎแแจแ แซแแแแก แแแแแงแแแแแแ.
แแก แแแจแแแแก, แ แแ แแแก แจแแฃแซแแแ แแแกแฃแฎแแก แแแแแ, แแ แจแแแแฎแแแแแแจแแช แแ, แ แแแแกแแช แจแแงแแแแแก แแแ แแแแขแแแแก 10^100 แแแแแแแแชแแแ.
แแแแ แแ แแก แแ แแก แแฎแแแแ แแแแฃแแ แจแแงแแแแแก แแ แแฃแแแแขแ แแแแแ แ แแชแฎแแแก แขแแแแก แแ แแก แฎแจแแ แแ แแแฎแแแแแ แแ แแฅแขแแแแจแ.
แแ แแแแแแ 8 แแแแแคแแแก แจแแกแแฎแแ (แแฆแแแฃแแแ แแแแแแกแฃแ แแแแ
# We know each queen must be in a different row.
# So, we represent each queen by a single integer: the column position
Q = [ Int('Q_%i' % (i + 1)) for i in range(8) ]
# Each queen is in a column {1, ... 8 }
val_c = [ And(1 <= Q[i], Q[i] <= 8) for i in range(8) ]
# At most one queen per column
col_c = [ Distinct(Q) ]
# Diagonal constraint
diag_c = [ If(i == j,
True,
And(Q[i] - Q[j] != i - j, Q[i] - Q[j] != j - i))
for i in range(8) for j in range(i) ]
solve(val_c + col_c + diag_c)
Z3-แแก แแแจแแแแแกแแก แแแฆแแแ แแแแแกแแแแแก:
[Q_5 = 1,
Q_8 = 7,
Q_3 = 8,
Q_2 = 2,
Q_6 = 3,
Q_4 = 6,
Q_7 = 5,
Q_1 = 4]
แแแแแคแแแก แแ แแแแแแ แจแแแแ แแแฃแแแ แแ แแแ แแแแกแแแ, แ แแแแแแช แจแแกแแงแแแแแ แแฆแแแก 8 แแแแแคแแแก แแแแ แแแแแขแแแก แแ แแแแแกแชแแแก แแแกแฃแฎแก, แกแชแแแแก แแฃ แแ แ แแแแแคแแแแ แแ แแแแแแแก.
แแฃ แฉแแแ แแแแแแญแ แแ แแกแแแ แแ แแแ แแแ แคแแ แแแแฃแ แ แแแแแแแฌแแแแแก แแแแแงแแแแแแ, แแแจแแ แแ แแแแแแแกแแแ แจแแแแ แแแแ, แฉแแแ แฃแแ แแแแ แแแแแญแแ แแแแ แแแแแ แแ แแ แแแแแฏแแก แแแแแแแแ แแ แแแ แแแแก แแแแแก แแแแขแแแแแแ แแแแแฅแชแแแแก แกแแฎแแ: แแก แแ แกแแแแแแ แฉแแแแแก แแแแแขแฃแ แ แแฆแแแฉแแแแแ ( แ แ แแฅแแ แฃแแแ, แแฃ แแ แแแ แแแ แกแฌแแ แแ แแงแ แแแฌแแ แแแ).
แแแแฅแแแก แแแแแ แแแฎแแแแ แแแฃแชแแแแแแแก แซแแแแแก แจแแแแฎแแแแแจแ: แฉแแแ แฃแแ แแแแ แแแงแแแแแ แแแแแแแแแ แแแ แแแแแก, แ แแแแแแแช แแแญแแ แแแแ, แแแแแแแแแ, แแแแแแแกแขแ แแขแแ แแก แแแ แแแก, แแแ แแแฅแแแแก แฌแงแแ แแก แแ แแแแแแแแแแ แแแฃแ แแแแก แแแแแแแฌแแแแแกแแแ แแแแกแแแแ แแแแขแแแแแแ แแ แจแแแแแ แแแฆแแแ แแแกแฃแฎแก, แแฃ แ แ แแแแแแก แแแกแแฆแฌแแแแ แกแแญแแ แแ แแแแแชแแแแแแก แแแฌแแแแแ.
แฉแแแ แแแ แแ, แแแแแก, แแฎแแกแ แแ แแแแแแกแขแแก แแ แแแแแแ แแแแแ แฃแคแ แ แกแแแแขแแ แแกแแ, แ แแแแแ แแแกแ แแแแแญแ แ แฃแแแ แแแแ (7) แแแแแฏแก แแแแแฎแแแก.
แแฃ แแแแแคแแแก แแ แแแแแแ แจแแแแ แแแฃแแแ แแ แจแแแแฎแแแแแกแแแ, แ แแแแกแแช แแฅแแแ แจแแแแซแแแแ แจแแแฆแฌแแแ แกแแ แแแ แแ แแ แแ GET แแ POST แแแแฎแแแแแก แแแแแงแแแแแแ, แแแจแแ แแแแแ, แแฎแ แแ แแแแแแกแขแ แแฉแแแแแแก แแแแแแแแก แแแแ แแ แฃแคแ แ แ แแฃแแ แแ แแแแ แชแแแแแฃแแ แแแขแแแแ แแแแแ, แ แแแแแจแแช แแแแแแก แแแฆแฌแแแ แจแแกแแซแแแแแแแ แแฎแแแแ. แ แแแแแแแแ แแฎแแแแแ.
แแก แจแแแแ แแแฃแแแ, แแแแแแแแแ, แกแชแแแแ แแแ, แ แแแแกแแช แแฅแแแ แฃแแแ แแแแแแ SQL แแแแฅแชแแ, แแแฌแแ แแ แคแแแแ แแแกแจแ, แจแแแแแ แแแแแฆแแแ แแฅแแแแ แฃแคแแแแแแ แแ แแฎแแแแ แแแแก แจแแแแแ แแแแฆแแ แแแ แแแ.
แแ แแแแแแแก แแแ แแแแแ แแ แแแกแ แแแแแฌแงแแแขแแคแแ แแแ แก แกแญแแ แแแแ แแแแแก, แแฎแแกแ แแ แแแแแแกแขแแก แแแแแขแแแ แแแแแแ แแก แแแกแฌแแ แแ. แคแแ แแแ แก แแฅแแก แแแแ, แ แแแแแแช แแฎแแแแ แแ แ แแแแแฅแขแก แแขแแแก, แแแ แแ แแแแแ แคแแ แแแ แแกแ. แแแแแ แจแแญแแแก แแฎแแก แแ แแฎแ แจแแญแแแก แแแแแแกแขแแก, แแฃ แคแแ แแแ แ แแแ แฃแงแฃแ แแแฆแแแแ แแแขแแแแแก.
แแแกแฃแฎแ แแ แแก แแก, แ แแ แแ-4 แกแแคแแฎแฃแ แแ แคแแ แแแ แก แแแกแญแแ แแแแ แแฎแแก แแแแ แฃแแแแ.
แแฎแแ แแแแแฌแงแแ แแแกแ แแแแแญแ แ แแ แแแ แแแฃแแแ.
แแแแ แแแฆแแแจแแแ แคแแ แแแ แ, แแแแแ, แแฎแ แแ แแแแแแกแขแ 4 แชแแแแแแ, แ แแแแแแแช แแฆแแแแ แแแแจแแแแแแแแก แแฎแแแแ 0 แแ 1. แแฃแแ แแแจแแแแก, แ แแ แแกแแแ แแแ แชแฎแแแ แกแแแแแแ แแแ แแ แแแ, แฎแแแ แแ แแ แแแจแแแแก, แ แแ แแกแแแ แแ แแแ แแแ แฏแแแแ.
import json
from z3 import *
s = Solver()
Num= 8
Human = [ Int('Human_%i' % (i + 1)) for i in range(Num) ]
Wolf = [ Int('Wolf_%i' % (i + 1)) for i in range(Num) ]
Goat = [ Int('Goat_%i' % (i + 1)) for i in range(Num) ]
Cabbage = [ Int('Cabbage_%i' % (i + 1)) for i in range(Num) ]
# Each creature can be only on left (0) or right side (1) on every state
HumanSide = [ Or(Human[i] == 0, Human[i] == 1) for i in range(Num) ]
WolfSide = [ Or(Wolf[i] == 0, Wolf[i] == 1) for i in range(Num) ]
GoatSide = [ Or(Goat[i] == 0, Goat[i] == 1) for i in range(Num) ]
CabbageSide = [ Or(Cabbage[i] == 0, Cabbage[i] == 1) for i in range(Num) ]
Side = HumanSide+WolfSide+GoatSide+CabbageSide
Num แแ แแก แแแแแกแแญแ แแแแ แกแแญแแ แ แแแแแฏแแแแก แ แแแแแแแแ. แงแแแแแ แแแแแฏแ แฌแแ แแแแแแแแก แแแแแแ แแก, แแแแแก แแ แงแแแแ แแ แกแแแแก แแแแแแแ แแแแแก.
แแฎแแ แแแแ แฉแแแ แแก แจแแแแฎแแแแแ แแ แแฆแแ แแ, แแแแฆแแ 10.
แแแแแแฃแแ แกแฃแแแแฅแขแ แฌแแ แแแแแแแแแแ 10 แแแแแแแแแ แแ - แแก แแ แแก แแแกแ แฆแแ แแแฃแแแแ 10 แแแแแฏแแแแ แแแแแแฃแแแ.
แแฎแแ แแแแแงแแแแ แแแ แแแแแ แแแฌแงแแแแกแ แแ แแแกแ แฃแแแแแกแแแแก.
Start = [ Human[0] == 0, Wolf[0] == 0, Goat[0] == 0, Cabbage[0] == 0 ]
Finish = [ Human[9] == 1, Wolf[9] == 1, Goat[9] == 1, Cabbage[9] == 1 ]
แจแแแแแ แแแแขแแแแแแก แจแแแฆแฃแแแแ แแแงแแแแแ แแแ แแแแแก, แ แแแแกแแช แแแแแ แญแแแก แแฎแแก, แแ แแฎแ แญแแแก แแแแแแกแขแแก.
(แคแแ แแแ แแก แแแแแแกแฌแ แแแแ แแแ แแกแแ แจแแฃแซแแแแแแแ)
# Wolf cant stand with goat, and goat with cabbage without human. Not 2, not 0 which means that they are one the same side
Safe = [ And( Or(Wolf[i] != Goat[i], Wolf[i] == Human[i]), Or(Goat[i] != Cabbage[i], Goat[i] == Human[i])) for i in range(Num) ]
แแ แแแแแก, แฉแแแ แแแแแกแแแฆแแ แแแ แคแแ แแแ แแก แงแแแแ แจแแกแแซแแ แแแฅแแแแแแแก แแฅ แแ แฃแแแ แแแแแกแแแแกแแก.
แแแก แจแแฃแซแแแ แแ แฌแแแงแแแแแก แแแแแ, แแฎแ แแ แแแแแแกแขแ, แแ แแ แฌแแแงแแแแแก แแแแแ, แแ แกแแแ แแแ แแ แแแชแฃแ แแก แแ แกแแ.
แ แ แแฅแแ แฃแแแ, แคแแ แแแ แแก แแแ แแจแ แแแ แแแแ แแแแแแแแแก.
แแก แแแแแแฎแแขแแแ แแแแ, แ แแ แแแแแแ แแก, แแแแแก แแ แแ แแแฃแแแแแก แงแแแแแ แแแแแแแแ แแแแแแแ แแแแ แจแแแซแแแแ แแแแกแฎแแแแแแแแแแก แฌแแแแแแ แแฎแแแแ แแแแชแ แแ แจแแแฆแฃแแฃแแ แแแแ.
แแ แแฃแแแขแแก 2 แแแขแแกแ แแ แแ แแแแแ แกแฎแแ แแแแแขแแ, แแแแแแแแ แคแแ แแแ แก แจแแฃแซแแแ แแฎแแแแ แแ แแ แแแแแฅแขแแก แขแ แแแกแแแ แขแแ แแแ แแ แแแ แแฃแแแ แแ แแ แจแแแซแแแแ แงแแแแ แแ แแแ แแแ แฉแแก.
Travel = [ Or(
And(Human[i] == Human[i+1] + 1, Wolf[i] == Wolf[i+1] + 1, Goat[i] == Goat[i+1], Cabbage[i] == Cabbage[i+1]),
And(Human[i] == Human[i+1] + 1, Goat[i] == Goat[i+1] + 1, Wolf[i] == Wolf[i+1], Cabbage[i] == Cabbage[i+1]),
And(Human[i] == Human[i+1] + 1, Cabbage[i] == Cabbage[i+1] + 1, Wolf[i] == Wolf[i+1], Goat[i] == Goat[i+1]),
And(Human[i] == Human[i+1] - 1, Wolf[i] == Wolf[i+1] - 1, Goat[i] == Goat[i+1], Cabbage[i] == Cabbage[i+1]),
And(Human[i] == Human[i+1] - 1, Goat[i] == Goat[i+1] - 1, Wolf[i] == Wolf[i+1], Cabbage[i] == Cabbage[i+1]),
And(Human[i] == Human[i+1] - 1, Cabbage[i] == Cabbage[i+1] - 1, Wolf[i] == Wolf[i+1], Goat[i] == Goat[i+1]),
And(Wolf[i] == Wolf[i+1], Goat[i] == Goat[i+1], Cabbage[i] == Cabbage[i+1])) for i in range(Num-1) ]
แแแแแ แแแแแแแงแแแแ แแแแแกแแแแแ.
solve(Side + Start + Finish + Safe + Travel)
แแ แฉแแแ แแแฆแแแ แแแกแฃแฎแก!
Z3-แแ แแฆแแแแฉแแแ แแแแแแแ แแแแแแแก แแแแแแแแแแ แฃแแ แแแแ แแแ, แ แแแแแแช แแแแแงแแคแแแแแก แงแแแแ แแแ แแแแก.
แกแแแ แชแ-แแ แแแก แแ แแแแแ แ แแแฎแแแแแแแแแแแแแแ แแกแแฎแแแแ.
แแแแแ แแแแแ แแแแแ แ แ แแแฎแแ.
แฉแแแ แแฎแแแแแ, แ แแ แแแแแก แงแแแแ แแแแแแแแแ, แแฎแแแแ แแแแแแแ แฉแแแแแ แคแแ แแแ แแ แแแแแฌแงแแแขแ แแแกแแแแแแ แแ แแแ แแแ 2 แแแแแฏแจแ แแ แกแแ แแ แแแแแแแก.
Human_2 = 0
Human_3 = 0
แแก แแแแแ แแแขแงแแแแแแก, แ แแ แฉแแแ แแแแ แแ แฉแแฃแแ แกแแฎแแแแฌแแคแแแแแก แ แแแแแแแแ แแแแแญแแ แแแแฃแแแ แแ 8 แกแแแกแแแแ แกแแแแแ แแกแ แแฅแแแแ.
แฉแแแแก แจแแแแฎแแแแแจแ แแแแฎแแ แแกแ แแแแฅแชแ: แแแแฌแงแ, แแแแกแแแแ, แแแแกแแแแ, แแฎแ แแแแแแแแแ, แฃแแแ แแแแแแแแแ, แแแแแแกแขแ แแแแแแแแแ, แแฎแ แแแแ แฃแแแ, แแแแแ แแแแแแฏแแแ แแแแแ, แแแ แขแ แแแแ แฃแแแ, แฎแแแแฎแแ แแแแฌแแแ แแฎแ.
แแแแ แแ แกแแแแแแแ แแ แแแแแแ แแแแแแ แแ.
#ะกัะฐัั.
Human_1 = 0
Wolf_1 = 0
Goat_1 = 0
Cabbage_1 = 0
#ะคะตัะผะตั ะพัะดัั
ะฐะตั.
Human_2 = 0
Wolf_2 = 0
Goat_2 = 0
Cabbage_2 = 0
#ะคะตัะผะตั ะพัะดัั
ะฐะตั.
Human_3 = 0
Wolf_3 = 0
Goat_3 = 0
Cabbage_3 = 0
#ะคะตัะผะตั ะพัะฒะพะทะธั ะบะพะทั ะฝะฐ ะฝัะถะฝัะน ะฑะตัะตะณ.
Human_4 = 1
Wolf_4 = 0
Goat_4 = 1
Cabbage_4 = 0
#ะคะตัะผะตั ะฒะพะทะฒัะฐัะฐะตััั.
Human_5 = 0
Wolf_5 = 0
Goat_5 = 1
Cabbage_5 = 0
#ะคะตัะผะตั ะพัะฒะพะทะธั ะบะฐะฟัััั ะฝะฐ ะฝัะถะฝัะน ะฑะตัะตะณ.
Human_6 = 1
Wolf_6 = 0
Cabbage_6 = 1
Goat_6 = 1
#ะะปััะตะฒะฐั ัะฐััั ะพะฟะตัะฐัะธะธ: ัะตัะผะตั ะฒะพะทะฒัะฐัะฐะตั ะบะพะทั ะพะฑัะฐัะฝะพ.
Human_7 = 0
Wolf_7 = 0
Goat_7 = 0
Cabbage_7 = 1
#ะคะตัะผะตั ะพัะฒะพะทะธั ะฒะพะปะบะฐ ะฝะฐ ะดััะณะพะน ะฑะตัะตะณ, ะณะดะต ะพะฝ ัะตะฟะตัั ะฝะฐั
ะพะดะธััั ะฒะผะตััะต ั ะบะฐะฟัััะพะน.
Human_8 = 1
Wolf_8 = 1
Goat_8 = 0
Cabbage_8 = 1
#ะคะตัะผะตั ะฒะพะทะฒัะฐัะฐะตััั ะทะฐ ะบะพะทะพะน.
Human_9 = 0
Wolf_9 = 1
Goat_9 = 0
Cabbage_9 = 1
#ะคะตัะผะตั ะฟะพะฒัะพัะฝะพ ะดะพััะฐะฒะปัะตั ะบะพะทั ะฝะฐ ะฝัะถะฝัะน ะฑะตัะตะณ ะธ ะทะฐะฒะตััะฐัั ะฟะตัะตะฟัะฐะฒั.
Human_10 = 1
Wolf_10 = 1
Goat_10 = 1
Cabbage_10 = 1
แแฎแแ แจแแแแชแแแแ แจแแแชแแแแแ แแแ แแแแแ แแ แแแแแแขแแแชแแ, แ แแ แแแแแกแแแแแ แแ แแ แแก.
แแแแกแแแแก แฉแแแแก แแแแแก แแแแแฎแแฃแแก แแแแชแแแ แแ แแแก แแแแแแกแขแแก แญแแแ แแแฃแแแแแ.
แแก แจแแแซแแแแ แจแแแแแแ แแ แแ แจแแแแฎแแแแแก, แ แแแแกแแช แฉแแแแ แแแแแแแ แแแแแแแชแแแก แแแชแแ แแ แฉแแแ แฃแแแ แแแแ แฌแแฃแแแแ, แ แแ แแ แแ แกแแแแแก แฎแแ แแแแแแ.
Safe = [ And( Or(Wolf[i] != Goat[i], Wolf[i] == Human[i]), Or(Goat[i] != Cabbage[i], Goat[i] == Human[i]), Or(Wolf[i] != Cabbage[i], Goat[i] == Human[i])) for i in range(Num) ]
Z3-แแ แแแแแชแ แจแแแแแแ แแแกแฃแฎแ:
no solution
แแก แแแจแแแแก, แ แแ แแแแแฌแงแแแขแแแแแแแ แแแแแแแแแ แแ แแ แกแแแแแก.
แแแ แแแแ, แฉแแแ แแ แแแ แแแฃแแแ แแแแแแขแแแชแแ แคแแ แแแ แแกแแแแก แงแแแแแกแแญแแแแ แแแแแแแ แแแแแแแแแแก แจแแฃแซแแแแแแแ.
แแฃ แแฃแแแขแแ แแแก แแก แแแแ แกแแแแขแแ แแกแแ แแแแฉแแแ, แแแจแแ แแแแแแแ แกแขแแขแแแแจแ แแแขแงแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแฅแชแแแ แฉแแแฃแแแแ แแแ แแ แแแ แแแ แแ แคแฃแแฅแชแแ แคแแ แแแแฃแ แแแแแแแแแแ แแแแกแแแแ แแแแขแแแแแแ แแ แแแแแแแ แแ แแแ, แแแแ แแแแแแแแแแแ แ แแแแ แช แงแแแแ แแแแแขแแแฃแ แ แกแชแแแแ แ, แแกแแแ แแแฃแชแแแแแแ. แฏแแ แแ แแ แแ แแแแแ แแแแแแแแแแ, แแฆแแแ แแ แแแ แแแแก แกแแฎแแ แฌแแ แแแแแแแแแ, แจแแแแแ แแ แแแกแ แแแแแแแแ แแแ แแฃแแแแ แแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแแแแแ แแแแก แกแแแงแแ แแก แแแแแแแแ แ แแแแแแแแแแแ แแแแแกแแแ.
แจแแแแแแ แกแขแแขแแ แฃแแแ แแแแ แแ แแก:
แแแกแจแ แแแแแแแแแแ แแ แแแแแแแแแก แแคแแชแแแแฃแ แ แแแแแแแฌแแแแแแแ แแ แแแ แแแแแแ แแ แแฆแแฌแแ
แ แแแแ แจแแแซแแแแ แแกแแแ แแแขแแแแขแฃแ แแ แแแ แแแแฅแแแแก แคแแ แแแแฃแ แ แฌแแกแแแแก แกแแกแขแแแแแแ.
แฌแงแแ แ: www.habr.com