Eurojackpot results for Friday 13th January 2017
The winning numbers for the 2nd Eurojackpot draw in 2017 that took place on Friday 13th January at 21:00 CEST (20:00 GMT) were:
Winners
Winners
Amount
Slovenian Prize Breakdown
View prize breakdowns for other countries| Numbers Matched | Prize Per Winner | Winners from Slovenia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
€102,477.50 | 0 | €0 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | 0 | €0 | 25 |
|
Match 4 and 1 Euro Number |
€356.60 | 12 | €4,279.20 | 431 |
|
Match 4 |
€133.50 | 17 | €2,269.50 | 895 |
|
Match 3 and 2 Euro Numbers |
€70.40 | 17 | €1,196.80 | 1,454 |
|
Match 2 and 2 Euro Numbers |
€23.70 | 306 | €7,252.20 | 22,324 |
|
Match 3 and 1 Euro Number |
€22.10 | 321 | €7,094.10 | 23,120 |
|
Match 3 |
€17 | 651 | €11,067 | 42,966 |
|
Match 1 and 2 Euro Numbers |
€10.60 | 1,967 | €20,850.20 | 124,726 |
|
Match 2 and 1 Euro Number |
€9.10 | 5,218 | €47,483.80 | 354,957 |
|
Total |
- | 8,509 | €101,492.80 | 570,906 |
Eurojackpot prizes in Slovenia must be claimed within 90 days of the draw date, so tickets purchased for this draw were valid until Thursday 13th April 2017.
Additional Draw Information
In total there were 17,079,595 entries into this draw from all participating countries.
Draw Number: 2
European Prize Breakdown
| Numbers Matched | Prize Per Winner | Winners from Croatia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kn75,000,000 | 0 | kn0 | 0 |
|
Match 5 and 1 Euro Number |
kn3,656,532.48 | 0 | kn0 | 3 |
|
Match 5 |
kn774,324.09 | 0 | kn0 | 5 |
|
Match 4 and 2 Euro Numbers |
kn51,621.35 | 0 | kn0 | 25 |
|
Match 4 and 1 Euro Number |
kn2,694.48 | 4 | kn10,777.92 | 431 |
|
Match 4 |
kn1,008.73 | 20 | kn20,174.60 | 895 |
|
Match 3 and 2 Euro Numbers |
kn531.95 | 20 | kn10,639 | 1,454 |
|
Match 2 and 2 Euro Numbers |
kn179.08 | 377 | kn67,513.16 | 22,324 |
|
Match 3 and 1 Euro Number |
kn166.99 | 392 | kn65,460.08 | 23,120 |
|
Match 3 |
kn128.45 | 844 | kn108,411.80 | 42,966 |
|
Match 1 and 2 Euro Numbers |
kn80.09 | 2,138 | kn171,232.42 | 124,726 |
|
Match 2 and 1 Euro Number |
kn68.76 | 6,453 | kn443,708.28 | 354,957 |
|
Total |
- | 10,248 | kn897,917.26 | 570,906 |
Eurojackpot prizes in Croatia must be claimed within 60 days of the draw date, so tickets purchased for this draw were valid until Tuesday 14th March 2017.
The estimated jackpot advertised in Croatia prior to the draw was kn75,000,000.
| Numbers Matched | Prize Per Winner | Winners from Czech Republic | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
Kč270,000,000 | 0 | Kč0 | 0 |
|
Match 5 and 1 Euro Number |
Kč13,075,567 | 0 | Kč0 | 3 |
|
Match 5 |
Kč2,768,942 | 1 | Kč2,768,942 | 5 |
|
Match 4 and 2 Euro Numbers |
Kč184,595 | 2 | Kč369,190 | 25 |
|
Match 4 and 1 Euro Number |
Kč9,635 | 30 | Kč289,050 | 431 |
|
Match 4 |
Kč3,607 | 32 | Kč115,424 | 895 |
|
Match 3 and 2 Euro Numbers |
Kč1,902 | 44 | Kč83,688 | 1,454 |
|
Match 2 and 2 Euro Numbers |
Kč640 | 813 | Kč520,320 | 22,324 |
|
Match 3 and 1 Euro Number |
Kč597 | 869 | Kč518,793 | 23,120 |
|
Match 3 |
Kč459 | 1,658 | Kč761,022 | 42,966 |
|
Match 1 and 2 Euro Numbers |
Kč286 | 4,377 | Kč1,251,822 | 124,726 |
|
Match 2 and 1 Euro Number |
Kč245 | 12,753 | Kč3,124,485 | 354,957 |
|
Total |
- | 20,579 | Kč9,802,736 | 570,906 |
Eurojackpot prizes in Czech Republic must be claimed within 35 days of the draw date, so tickets purchased for this draw were valid until Friday 17th February 2017.
The estimated jackpot advertised in Czech Republic prior to the draw was Kč270,000,000.
| Numbers Matched | Prize Per Winner | Winners from Denmark | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kr.63,000,000 | 0 | kr.0 | 0 |
|
Match 5 and 1 Euro Number |
kr.3,085,031 | 0 | kr.0 | 3 |
|
Match 5 |
kr.653,324 | 0 | kr.0 | 5 |
|
Match 4 and 2 Euro Numbers |
kr.43,582 | 2 | kr.87,164 | 25 |
|
Match 4 and 1 Euro Number |
kr.2,303 | 39 | kr.89,817 | 431 |
|
Match 4 |
kr.881 | 80 | kr.70,480 | 895 |
|
Match 3 and 2 Euro Numbers |
kr.478 | 152 | kr.72,656 | 1,454 |
|
Match 2 and 2 Euro Numbers |
kr.177 | 1,950 | kr.345,150 | 22,324 |
|
Match 3 and 1 Euro Number |
kr.165 | 2,175 | kr.358,875 | 23,120 |
|
Match 3 |
kr.127 | 3,923 | kr.498,221 | 42,966 |
|
Match 1 and 2 Euro Numbers |
kr.79 | 10,928 | kr.863,312 | 124,726 |
|
Match 2 and 1 Euro Number |
kr.68 | 31,704 | kr.2,155,872 | 354,957 |
|
Total |
- | 50,953 | kr.4,541,547 | 570,906 |
Eurojackpot prizes in Denmark must be claimed within a set period of time depending on how much you have won. Visit the How to Claim page to find specific claim periods, with some prizes needing to be claimed within 90 days of the draw (valid until Thursday 13th April 2017).
The estimated jackpot advertised in Denmark prior to the draw was kr.63,000,000.
| Numbers Matched | Prize Per Winner | Winners from Estonia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 1 | €483,921.80 | 3 |
|
Match 5 |
€102,477.50 | 0 | €0 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | 0 | €0 | 25 |
|
Match 4 and 1 Euro Number |
€356.60 | 2 | €713.20 | 431 |
|
Match 4 |
€133.50 | 11 | €1,468.50 | 895 |
|
Match 3 and 2 Euro Numbers |
€70.40 | 8 | €563.20 | 1,454 |
|
Match 2 and 2 Euro Numbers |
€23.70 | 227 | €5,379.90 | 22,324 |
|
Match 3 and 1 Euro Number |
€22.10 | 201 | €4,442.10 | 23,120 |
|
Match 3 |
€17 | 446 | €7,582 | 42,966 |
|
Match 1 and 2 Euro Numbers |
€10.60 | 1,159 | €12,285.40 | 124,726 |
|
Match 2 and 1 Euro Number |
€9.10 | 3,441 | €31,313.10 | 354,957 |
|
Total |
- | 5,496 | €547,669.20 | 570,906 |
Eurojackpot prizes in Estonia must be claimed within 90 days of the draw date, so tickets purchased for this draw were valid until Thursday 13th April 2017.
The estimated jackpot advertised in Estonia prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Finland | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
€102,477.50 | 2 | €204,955 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | At present this information is not released by the lottery operator of Finland | 25 | |
|
Match 4 and 1 Euro Number |
€356.60 | 431 | ||
|
Match 4 |
€133.50 | 895 | ||
|
Match 3 and 2 Euro Numbers |
€70.40 | 1,454 | ||
|
Match 2 and 2 Euro Numbers |
€23.70 | 22,324 | ||
|
Match 3 and 1 Euro Number |
€22.10 | 23,120 | ||
|
Match 3 |
€17 | 42,966 | ||
|
Match 1 and 2 Euro Numbers |
€10.60 | 124,726 | ||
|
Match 2 and 1 Euro Number |
€9.10 | 354,957 | ||
|
Total |
- | 570,906 |
Eurojackpot prizes in Finland must be claimed within 365 days of the draw date, so tickets purchased for this draw were valid until Saturday 13th January 2018.
The estimated jackpot advertised in Finland prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Germany | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 1 | €483,921.80 | 3 |
|
Match 5 |
€102,477.50 | 1 | €102,477.50 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | At present this information is not released by the lottery operator of Germany | 25 | |
|
Match 4 and 1 Euro Number |
€356.60 | 431 | ||
|
Match 4 |
€133.50 | 895 | ||
|
Match 3 and 2 Euro Numbers |
€70.40 | 1,454 | ||
|
Match 2 and 2 Euro Numbers |
€23.70 | 22,324 | ||
|
Match 3 and 1 Euro Number |
€22.10 | 23,120 | ||
|
Match 3 |
€17 | 42,966 | ||
|
Match 1 and 2 Euro Numbers |
€10.60 | 124,726 | ||
|
Match 2 and 1 Euro Number |
€9.10 | 354,957 | ||
|
Total |
- | 570,906 |
Eurojackpot prizes in Germany must be claimed within 3 years of the draw date, so tickets purchased for this draw are valid until Monday 13th January 2020.
The estimated jackpot advertised in Germany prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Hungary | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
Ft28,744,940 | 0 | Ft0 | 5 |
|
Match 4 and 2 Euro Numbers |
Ft1,916,320 | 0 | Ft0 | 25 |
|
Match 4 and 1 Euro Number |
Ft100,025 | 6 | Ft600,150 | 431 |
|
Match 4 |
Ft37,445 | 19 | Ft711,455 | 895 |
|
Match 3 and 2 Euro Numbers |
Ft19,745 | 25 | Ft493,625 | 1,454 |
|
Match 2 and 2 Euro Numbers |
Ft6,650 | 472 | Ft3,138,800 | 22,324 |
|
Match 3 and 1 Euro Number |
Ft6,200 | 495 | Ft3,069,000 | 23,120 |
|
Match 3 |
Ft4,770 | 1,195 | Ft5,700,150 | 42,966 |
|
Match 1 and 2 Euro Numbers |
Ft2,975 | 2,722 | Ft8,097,950 | 124,726 |
|
Match 2 and 1 Euro Number |
Ft2,555 | 8,577 | Ft21,914,235 | 354,957 |
|
Total |
- | 13,511 | Ft43,725,365 | 570,906 |
Eurojackpot prizes in Hungary must be claimed within 180 days of the draw date, so tickets purchased for this draw were valid until Wednesday 12th July 2017.
The estimated jackpot advertised in Hungary prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Iceland | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kr.1,288,256,390 | 0 | kr.0 | 0 |
|
Match 5 and 1 Euro Number |
kr.58,496,460 | 0 | kr.0 | 3 |
|
Match 5 |
kr.12,387,480 | 0 | kr.0 | 5 |
|
Match 4 and 2 Euro Numbers |
kr.825,820 | At present this information is not released by the lottery operator of Iceland | 25 | |
|
Match 4 and 1 Euro Number |
kr.43,100 | 431 | ||
|
Match 4 |
kr.16,130 | 895 | ||
|
Match 3 and 2 Euro Numbers |
kr.8,500 | 1,454 | ||
|
Match 2 and 2 Euro Numbers |
kr.2,860 | 22,324 | ||
|
Match 3 and 1 Euro Number |
kr.2,670 | 23,120 | ||
|
Match 3 |
kr.2,050 | 42,966 | ||
|
Match 1 and 2 Euro Numbers |
kr.1,280 | 124,726 | ||
|
Match 2 and 1 Euro Number |
kr.1,100 | 354,957 | ||
|
Total |
- | 570,906 |
Eurojackpot prizes in Iceland must be claimed within 1 year of the draw date, so tickets purchased for this draw were valid until Saturday 13th January 2018.
The estimated jackpot advertised in Iceland prior to the draw was kr.12,000,000,000.
| Numbers Matched | Prize Per Winner | Winners from Italy | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
€102,477.50 | 0 | €0 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | 0 | €0 | 25 |
|
Match 4 and 1 Euro Number |
€356.60 | 11 | €3,922.60 | 431 |
|
Match 4 |
€133.50 | 32 | €4,272 | 895 |
|
Match 3 and 2 Euro Numbers |
€70.40 | 65 | €4,576 | 1,454 |
|
Match 2 and 2 Euro Numbers |
€23.70 | 886 | €20,998.20 | 22,324 |
|
Match 3 and 1 Euro Number |
€22.10 | 836 | €18,475.60 | 23,120 |
|
Match 3 |
€17 | 1,585 | €26,945 | 42,966 |
|
Match 1 and 2 Euro Numbers |
€10.60 | 4,767 | €50,530.20 | 124,726 |
|
Match 2 and 1 Euro Number |
€9.10 | 12,984 | €118,154.40 | 354,957 |
|
Total |
- | 21,166 | €247,874 | 570,906 |
Eurojackpot prizes in Italy must be claimed within a set period of time depending on how much you have won. Visit the How to Claim page to find specific claim periods, with some prizes needing to be claimed within 30 days of the draw (valid until Sunday 12th February 2017).
The estimated jackpot advertised in Italy prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Latvia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
€102,477.50 | 0 | €0 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | At present this information is not released by the lottery operator of Latvia | 25 | |
|
Match 4 and 1 Euro Number |
€356.60 | 431 | ||
|
Match 4 |
€133.50 | 895 | ||
|
Match 3 and 2 Euro Numbers |
€70.40 | 1,454 | ||
|
Match 2 and 2 Euro Numbers |
€23.70 | 22,324 | ||
|
Match 3 and 1 Euro Number |
€22.10 | 23,120 | ||
|
Match 3 |
€17 | 42,966 | ||
|
Match 1 and 2 Euro Numbers |
€10.60 | 124,726 | ||
|
Match 2 and 1 Euro Number |
€9.10 | 354,957 | ||
|
Total |
- | 570,906 |
Eurojackpot prizes in Latvia must be claimed within 30 days of the draw date, so tickets purchased for this draw were valid until Sunday 12th February 2017.
The estimated jackpot advertised in Latvia prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Lithuania | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
€102,477.50 | 0 | €0 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | 0 | €0 | 25 |
|
Match 4 and 1 Euro Number |
€356.60 | 2 | €713.20 | 431 |
|
Match 4 |
€133.50 | 7 | €934.50 | 895 |
|
Match 3 and 2 Euro Numbers |
€70.40 | 8 | €563.20 | 1,454 |
|
Match 2 and 2 Euro Numbers |
€23.70 | 90 | €2,133 | 22,324 |
|
Match 3 and 1 Euro Number |
€22.10 | 99 | €2,187.90 | 23,120 |
|
Match 3 |
€17 | 180 | €3,060 | 42,966 |
|
Match 1 and 2 Euro Numbers |
€10.60 | 490 | €5,194 | 124,726 |
|
Match 2 and 1 Euro Number |
€9.10 | 1,485 | €13,513.50 | 354,957 |
|
Total |
- | 2,361 | €28,299.30 | 570,906 |
Eurojackpot prizes in Lithuania must be claimed within 60 days of the draw date, so tickets purchased for this draw were valid until Tuesday 14th March 2017.
The estimated jackpot advertised in Lithuania prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Netherlands | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€0 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
€102,477.50 | 0 | €0 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | At present this information is not released by the lottery operator of Netherlands | 25 | |
|
Match 4 and 1 Euro Number |
€356.60 | 431 | ||
|
Match 4 |
€133.50 | 895 | ||
|
Match 3 and 2 Euro Numbers |
€70.40 | 1,454 | ||
|
Match 2 and 2 Euro Numbers |
€23.70 | 22,324 | ||
|
Match 3 and 1 Euro Number |
€22.10 | 23,120 | ||
|
Match 3 |
€17 | 42,966 | ||
|
Match 1 and 2 Euro Numbers |
€10.60 | 124,726 | ||
|
Match 2 and 1 Euro Number |
€9.10 | 354,957 | ||
|
Total |
- | 570,906 |
Eurojackpot prizes in Netherlands must be claimed within 365 days of the draw date, so tickets purchased for this draw were valid until Saturday 13th January 2018.
The estimated jackpot advertised in Netherlands prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Norway | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kr.90,000,000 | 0 | kr.0 | 0 |
|
Match 5 and 1 Euro Number |
kr.23,735,875 | 1 | kr.23,735,875 | 3 |
|
Match 5 |
kr.928,240 | 1 | kr.928,240 | 5 |
|
Match 4 and 2 Euro Numbers |
kr.61,880 | At present this information is not released by the lottery operator of Norway | 25 | |
|
Match 4 and 1 Euro Number |
kr.3,230 | 431 | ||
|
Match 4 |
kr.1,205 | 895 | ||
|
Match 3 and 2 Euro Numbers |
kr.635 | 1,454 | ||
|
Match 2 and 2 Euro Numbers |
kr.210 | 22,324 | ||
|
Match 3 and 1 Euro Number |
kr.200 | 23,120 | ||
|
Match 3 |
kr.150 | 42,966 | ||
|
Match 1 and 2 Euro Numbers |
kr.95 | 124,726 | ||
|
Match 2 and 1 Euro Number |
kr.80 | 354,957 | ||
|
Total |
- | 570,906 |
Eurojackpot prizes in Norway must be claimed within 3 months of the draw date, so tickets purchased for this draw were valid until Thursday 13th April 2017.
The estimated jackpot advertised in Norway prior to the draw was kr.90,000,000.
| Numbers Matched | Prize Per Winner | Winners from Slovakia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
€102,477.50 | 0 | €0 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | 0 | €0 | 25 |
|
Match 4 and 1 Euro Number |
€356.60 | 4 | €1,426.40 | 431 |
|
Match 4 |
€133.50 | 27 | €3,604.50 | 895 |
|
Match 3 and 2 Euro Numbers |
€70.40 | 43 | €3,027.20 | 1,454 |
|
Match 2 and 2 Euro Numbers |
€23.70 | 505 | €11,968.50 | 22,324 |
|
Match 3 and 1 Euro Number |
€22.10 | 489 | €10,806.90 | 23,120 |
|
Match 3 |
€17 | 986 | €16,762 | 42,966 |
|
Match 1 and 2 Euro Numbers |
€10.60 | 2,713 | €28,757.80 | 124,726 |
|
Match 2 and 1 Euro Number |
€9.10 | 7,075 | €64,382.50 | 354,957 |
|
Total |
- | 11,842 | €140,735.80 | 570,906 |
Eurojackpot prizes in Slovakia must be claimed within 35 days of the draw date, so tickets purchased for this draw were valid until Friday 17th February 2017.
The estimated jackpot advertised in Slovakia prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Spain | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,657,316.30 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€483,921.80 | 0 | €0 | 3 |
|
Match 5 |
€102,477.50 | 0 | €0 | 5 |
|
Match 4 and 2 Euro Numbers |
€6,831.80 | 1 | €6,831.80 | 25 |
|
Match 4 and 1 Euro Number |
€356.60 | 18 | €6,418.80 | 431 |
|
Match 4 |
€133.50 | 24 | €3,204 | 895 |
|
Match 3 and 2 Euro Numbers |
€70.40 | 53 | €3,731.20 | 1,454 |
|
Match 2 and 2 Euro Numbers |
€23.70 | 1,008 | €23,889.60 | 22,324 |
|
Match 3 and 1 Euro Number |
€22.10 | 1,133 | €25,039.30 | 23,120 |
|
Match 3 |
€17 | 1,905 | €32,385 | 42,966 |
|
Match 1 and 2 Euro Numbers |
€10.60 | 5,273 | €55,893.80 | 124,726 |
|
Match 2 and 1 Euro Number |
€9.10 | 15,648 | €142,396.80 | 354,957 |
|
Total |
- | 25,063 | €299,790.30 | 570,906 |
Eurojackpot prizes in Spain must be claimed within 30 days of the draw date, so tickets purchased for this draw were valid until Sunday 12th February 2017.
The estimated jackpot advertised in Spain prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Sweden | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kr.117,000,000 | 0 | kr.0 | 0 |
|
Match 5 and 1 Euro Number |
kr.4,608,048 | 0 | kr.0 | 3 |
|
Match 5 |
kr.975,821 | 0 | kr.0 | 5 |
|
Match 4 and 2 Euro Numbers |
kr.65,054 | 0 | kr.0 | 25 |
|
Match 4 and 1 Euro Number |
kr.25,500 | 18 | kr.459,000 | 431 |
|
Match 4 |
kr.10,694 | 38 | kr.406,372 | 895 |
|
Match 3 and 2 Euro Numbers |
kr.3,796 | 70 | kr.265,720 | 1,454 |
|
Match 2 and 2 Euro Numbers |
kr.225 | 961 | kr.216,225 | 22,324 |
|
Match 3 and 1 Euro Number |
kr.210 | 990 | kr.207,900 | 23,120 |
|
Match 3 |
kr.161 | 1,690 | kr.272,090 | 42,966 |
|
Match 1 and 2 Euro Numbers |
kr.100 | 5,300 | kr.530,000 | 124,726 |
|
Match 2 and 1 Euro Number |
kr.86 | 14,945 | kr.1,285,270 | 354,957 |
|
Total |
- | 24,012 | kr.3,642,577 | 570,906 |
Eurojackpot prizes in Sweden must be claimed within 3 months of the draw date, so tickets purchased for this draw were valid until Thursday 13th April 2017.
The estimated jackpot advertised in Sweden prior to the draw was kr.117,000,000.
Associated Draw Results
- 6
- 7
- 9
- 8
- 4
- 7
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| Match 6 in Exact Order | €50,000 | 0 |
| Match Last 5 in Exact Order | €5,000 | 0 |
| Match Last 4 in Exact Order | €500 | 12 |
| Match Last 3 in Exact Order | €50 | 86 |
| Match Last 2 in Exact Order | €5 | 936 |
| Match Last 1 in Exact Order | €3 | 8,816 |
- 5
- 4
- 6
- 2
- 3
- 7
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| Match 6 | CZK2,000,000 | 0 |
| Match 5 | CZK200,000 | 1 |
| Match 4 | CZK20,000 | 10 |
| Match 3 | CZK2,000 | 106 |
| Match 2 | CZK200 | 1,118 |
| Match 1 | CZK120 | 11,697 |
- 5
- 8
- 6
- 9
- 5
- 4
- 4
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| Match 7 in Exact Order | €0 | 0 |
| Match Any 6 in the Right Spot | €20,000 | 1 |
| Match Any 5 in the Right Spot | €500 | 32 |
| Match Any 4 in the Right Spot | €50 | 454 |
| Match Any 3 in the Right Spot | €6 | 4,376 |
| Match Any 2 in the Right Spot | €3 | 23,297 |
- Tokio
- 9
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| City and Number | €1,000 | 19 |
| City | €5 | 1,582 |
- 7
- 6
- 3
- 5
- 6
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| Match 5 in Exact Order | kr2,000,000 | 0 |
| Match First/Last 4 in Exact Order | kr100,000 | 0 |
| Match First/Last 3 in Exact Order | kr10,000 | 19 |
| Match First/Last 2 in Exact Order | kr2,000 | 120 |
- Nord-Fron
Related Eurojackpot Results Links
- Automatically check your Eurojackpot ticket
- View average prizes and winners for each prize tiers
- View the largest jackpot winners and total winners from each country
- View previous Eurojackpot results by year
Buy Eurojackpot Tickets Online
By buying your Eurojackpot tickets online you don’t have to worry about ever losing your Eurojackpot lottery tickets. When you play the Eurojackpot online all your lottery tickets purchased on the internet are stored in your personal account, meaning that you can view them anytime you wish.


WITNESS LIST Subcommittee on Technology & Business Growth Committee April 29, 1999-8:30A SB 1617 FOR: Wise, Andrew (American Electronics Association), Austin ON: Givens, Anita (Texas Education Agency), Austin SB 1819 ON: Miller, Roger (Texas State Technical College), Austin Oliver, Harold (Senator Frank Madla), Austin Registering, but not testifying: For: Wise, Andrew (American Electronics Association), Austin


To connect to a Kong node, enter the url and port of the administration API of said node, in the form field located at the upper right part of the
application, and press the connection button
The nodes with which we have previously connected successfully will be saved in the browser, and will appear in the form as a drop-down list.
When connecting to a node we will access its information page. We can return to this page by clicking on the name of the application "King for Kong" next to the logo.
This screen shows Kong's configuration information, and a graph with some basic connection metrics. It also shows the list of plugins available on the server and those currently in use that appear in green.
When managing traffic through the API Gateway, different components participate:
Read more about the way to manage all these elements through the administration API in the official documentation.
Kong publishes an API, called a Proxy API, for clients to send their requests to the final API servers. When a request arrives at the Proxy API, Kong tries to fit it into one of the Routes created. If it finds a Route that matches, it will redirect the request to the Service to which the Route is associated. In case it matches several Routes, an order of priority is applied to decide which one is correct.
You can check the order of priority when verifying the Gateway Routes that match a request in the official documentation.
There are numerous official plugins that can be used to add functionality to the Gateway. You can check the list of plugins in the Kong Hub.
When creating a new Plugin it can be associated with a specific Service, Route or Consumed (it depends on the plugin). Then that specific Plugin will apply to the requests that arrive at said Service or Route, or come from said Consumer. A Plugin can also be applied globally if it is not associated with any of those elements, and then it will apply to all requests that arrive at the Gateway. Apart from this, each Plugin will have its own configuration parameters.
It is possible to have multiple Plugins of the same type applied to different points of the Gateway and with different configuration. For example, you can have a Plugin that limits the requests to 100 per minute globally, and then another at the Route level that limits the requests that arrive to that specific Route to 5 per minute. You can check here the Plugin order of precedence.
Kong distributes the plugins by categories such as authentication, security, traffic control, etc. Throughout this manual several of these Plugins are referenced. It is important to consult their documentation in order to use and configure them correctly.
You can consult all the Plugins and their documentation at Kong Hub.
Kong allows restricting access to APIs published through different Plugins. To protect an API through client authentication, three elements are required:
Consumers are abstractions of the end clients within the Gateway. When a client is correctly identified with credentials before an authentication Plugin, it will be linked to the consumer that has those credentials associated with it.
There are numerous Plugins that can be applied at the Consumer level.
They are the mechanism that a Consumer will use to identify himself, and can range from a username and password, to an API token or certificates. When generating credentials, it will have to be done by linking them to a consumer, in order to identify it.
Credential management is provided by the authentication Plugins. Each one requires different credentials that are explained in its documentation.
There are several Authentication Plugins that provide different mechanisms to identify consumers. Many of them are compatible with each other, being able to apply more than one mechanism at the same time, although it must be taken into account that the effect they have is an OR, that is, for the client to identify himself against one of them is sufficient.
The following Plugins stand out:
Of all of them, King for Kong currently supports the creation of credentials for "Key Authentication".
It is worth highlighting a very interesting Plugin for managing consumer groups, called ACL . As its name indicates, it is used to manage ACLs in Kong, being able to create consumer groups. This allows us, applying this Plugin to a Service or Route (or globally) to restrict access to said element to a specific group of consumers. Even if a consumer has been correctly identified, if they do not belong to that group they will not be able to access that API.
There is also another Plugin called Session to be able to keep client sessions open in browsers. It is useful in case the Gateway serves web applications, it is not recommended to use it for other cases.
If any of the APIs that we want to place behind the Gateway requires authentication of its clients by means of a client certificate, Kong offers the possibility of manage the certificates, CAs and SNIs, so that they are used when calling the API server from the Service or Upstream final.
Currently the open-source version of Kong does not support consumer authentication via certificate.
We can apply different techniques of request traffic control through several of the Plugins offered by Kong.
The management of load balancing when sending requests to the final API services is carried out by the Upstreams. An Upstream receives requests from the Service and redirects them to the Targets (each instance of a final API service) following pre-configured rules.
Each Upstream contains a Ring Balancer to redirect traffic. It supports the following algorithms:
The most interesting traffic control Plugins are:
Kong allows you to monitor the activity of the Gateway and the requests that circulate through it, and offers different mechanisms and Plugins to consult and manage this activity.
In addition to acting as load balancers, Upstreams integrate mechanisms to verify the health status of the API server instances to which they connect. Scales can be established to determine if a Target (or complete Upstream) is healthy or not, and if it is not, stop sending requests until it recovers. They can do checks actively or passively.
Active checks are carried out by making HTTPS requests to a specified Target endpoint and determining the status of Target's health depending on the response code. You can also check the validity of the Target's certificate. When requiring requests, it is recommended not to abuse them.
Passive checks are performed by analyzing the response codes of the requests made by the Gateway clients to the different Targets. In this case it only "observes" the traffic and deduces the status of the Target depending on the HTTP code of the responses it returns, so it does not generate extra traffic and does not affect performance. As a particular characteristic, passive checks can deduce if a Target is not healthy, to "deactivate" it, but as from that moment it will stop receiving requests, it will never be able to deduce that it is healthy again and that it will receive requests again. For this reason, passive checks are called "disruptors or circuit-breakers".
For this reason, it is advisable to use passive checks to detect Targets that are not healthy, and establish active checks with a not very frequent frequency. short to determine if a Target is healthy again, in order not to increase the load on the Targets.
All these checks can be configured in enough detail, it is recommended to read the documentation.
Through Plugins we can collect different metrics and logs of the requests and responses that pass through the Gateway.
Kong allows you to send your logs to syslog at two levels. On the one hand, we can configure Kong in his configuration so that Kong's own logs are sent to syslog.
On the other hand, we can send information about each request and response to Syslog as well, through the Plugin Syslog. Allows you to configure certain parameters to define the log levels according to the response or error code, for example, to avoid sending everything.
There are several things to consider to improve the performance of the API Gateway.
Kong allows the Gateway to be clustered in a simple way by raising different nodes, which share the same database to synchronize. You just have to deploy different Kong instances pointing to the same database. You can configure different ways to perform this synchronization using the Kong configuration file.
Once clustered, each node will create its own Proxy API and Admin API. It is therefore required to put a load balancer (for example Nginx) in front of the Kong nodes to distribute the traffic. When you make a change to a node using the management API, it will be propagated to the other nodes using synchronization.
More information about Kong clusters.
Performance can be improved by caching requests from the Proxy API. For this, Kong offers a Plugin called Proxy Cache. It allows us to establish a cache for the responses to incoming requests in a certain amount of time, so that if there is a cached response, the Gateway will respond directly with the cache, freeing the final API server from that request.
More information about the cache requests.
When assigning resources to the servers that will host the API Gateway, various aspects of how we have designed the network of Services, Routes, Upstreams... must be taken into account. and the use we make of Plugins.
As general rules, it must be taken into account that:
More information on this topic in the documentation about resources.


{% extends "layout.html" %} {% block title %}Convert Residues{% endblock %} {% block body %} This PDB file contains non-standard residues. Do you want to convert them to standard residues?


Please enter your email address and we will send you instructions on how to reset your password.
ProSolo Technologies Inc © #{applicationbean.year}


Set up HTTPS¶
If you have set up SSL/HTTPS configurations on your GEE server, you can also set up a secure Fusion server for your browser-based maps.
Warning
The following procedure is applicable only to release 4.x and previous versions of GEE. For GEE release 5.x, see Configure GEE Server 5.1.0 for SSL/HTTPS.
To set up an HTTPS virtual server for Fusion:
Verify that you have already set up SSL/HTTPS configurations on your GEE server.
Create an HTTPS-compatible virtual server:
geserveradmin --stream_server_url http://myserver.org --server_type stream --addvs https_2d --vstype map --vscachelevel 1 --vsurl https://myserver.org/mymap
Copy and save the
Include
statement fromgeserveradmin
. Later, you will add that to the configuration file. It will look something like:Include conf.d/virtual_servers/runtime/mymap_runtime
- Copy a configuration file from the
examples
folder:cp /opt/google/share/gehttpd/examples/ /opt/google/gehttpd/conf.d/virtual_servers/https_mymap.location
- Edit the
https_mymap.location
file, insert theInclude
statement you copied and saved, and update the LOCATION tags to the real virtual server:r...@fusion.localhost.org:/opt/google/gehttpd/conf.d/virtual_servers # cat https_2d.location # This is an example of a location-based map virtual server # Substitute appropriate values in the following variables # 1. <LOCATION> : The new location name. # 2. <VS_NAME> : The virtual server name used to create the virtual # server with geserveradmin RewriteRule ^/mymap$ /mymap/ [R] RewriteRule ^/mymap/$ /maps/fusionmaps_local.html [PT] RewriteRule ^/mymap/mapfiles/(.*)$ /maps/mapfiles/$1 [PT] <Location "/mymap/*"> SetHandler gedb-handler Include conf.d/virtual_servers/runtime/https_2d_runtime SSLRequireSSL SSLVerifyClient none </Location>
- Modify the
/opt/google/gehttpd/conf/extra/httpd-ssl.conf
file so that the/opt/google/gehttpd/conf.d/virtual_server/https_2d.location
file and the virtual server are loaded by the HTTPS/443 virtual host and not the HTTP/80 virtual host:(vi /opt/google/gehttpd/conf/extra/httpd-ssl.conf...) <snip> ... <VirtualHost _default_:443> # General setup for the virtual host DocumentRoot "/opt/google/gehttpd/htdocs" ServerName myserver.org:443 ServerAdmin<EMAIL_ADDRESS>ErrorLog "/opt/google/gehttpd/logs/error_log" TransferLog "/opt/google/gehttpd/logs/access_log" Include conf.d/virtual_servers/https_2d.location ... <snip>
- Edit the HTTP/port 80 virtual host to load only the HTTP-available virtual servers:
(vi /opt/google/gehttpd/conf.d/gemodules.conf)
- Comment out the
Include .. *.location
line and manually list the included location files so that thehttps2d.location
file is excluded:LoadModule gedb_module /opt/google/gehttpd/modules/mod_gedb.so NameVirtualHost *:80 <VirtualHost *:80> # You should specify a ServerName in each VirtualHost declaration # to avoid unnecessary DNS lookups. # For example, ServerName www.mycompany.com # Redirect the home page to display the GE logo Include conf.d/index_rewrite Include conf.d/jkmount # Include all location-based virtual servers # Include conf.d/virtual_servers/*.location (Comment out this line.) Include conf.d/virtual_servers/default_ge.location (Add this line.) Include conf.d/virtual_servers/default_map.location (Add this line.) Include conf.d/virtual_servers/default_search.location (Add this line.) </VirtualHost>
- Save the file and restart the GEE Server software:
/etc/init.d/ geserver restart
This separates the HTTP and HTTPS virtual servers from the Apache software so that unencrypted and encrypted data can be hosted from both.
Note
The firewall blocks external port 80 / HTTP connections, but the Publisher tool must use the HTTP port to upload information, even if your system only allows this internally.
Create a Fusion server association for the new https2d virtual server. Use
http://myserver.org
for the URL for both Stream and Search URLs, then press the Query button and select the correct https2d virtual server from the drop-down list.Save the new server association, then publish a 2D database to the virtual server.
Listing registered virtual stream servers
To avoid confusion or conflict between http:// and https://
addresses, you can use geserveradmin
parameters like the
-- stream_server_url http://myserver.org
option that lists
registered virtual stream servers. For example, instead of using
the geserveradmin --listvss
command alone, you can use
geserveradmin --stream_server_url http://myserver.org --listvss
.
Binding Apache to port 80
You need HTTP to facilitate all geserveradmin
work, including
publishes, so make sure that your gehttpd.conf
configuration
file lets Apache bind to port 80. You can allow internal access to
HTTP even if you block external access to HTTP ports. This lets
the Publisher tool maintain the GEE Server software while you
disallow external unencrypted data communications.


We take pride in all that we do. So we are always here to answer any questions or provide information to those who seek it. Please send us your contact information to receive a response.


--- layout: archive title: Zulip Chat Archive permalink: /stream/144837-PR-reviews/topic/.23397.html ---
I just added some brief documentation for @Simon Hudon's new hole command https://github.com/leanprover/mathlib/pull/397 for inserting stubs of structure definitions.
Oops, but Mario has very efficiently merged it in the meantime. :-)
Does that mean we need a new PR?
Thanks for the doc, btw :)
I've already made that PR, and it was merged immediately.
whoa, what's up with that link in the title?
did you do that or is that just the effect of linkification?
@Mario Carneiro I believe it's from the same automatic linkification that happens in messages
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Shell
Corporate Portal
Application A
Application B
Application C
Application D
Subtitle
WW
Tiles
My Tasks
12

My Leave Requests
3

Lunch Menu
Weekly Menu
Card
JD
Card Title
Counter
Card Subtitle
Quick Links
6 of 20
List item 1
List item 2
List item 3
List item 4
List item 3
List item 4


Mob Number
Keywords
puff dragon
Short Desc/Name
Puff
Long Desc
Puff is here, contemplating reality.
Full Desc
Puff looks at you pondering however you ended up here and got a chance to look at her.
Lore Description
Puff is really a special mob, the first of her kind.
 Only needed for spell-casting mobs. Example: 10 d 100 + 500 5. Last digit is mana regeneration % per tick.
Gold
d
+
Gender
male
female
neutral
Exp Modifier
Optional. Equals the percent of normal exp given. For example, 90 will give the mob 10% less exp than standard. If used, must be less than 100.

Attack 1
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 2
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 3
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 4
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 5
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 6
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 7
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 8
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 9
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Attack 10
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
bite
bludgeon
breath
claw
crush
envenom
hit
kick
missile
pierce
punch
slash
special
specproc
sting
trample
whip
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
d
+
acid
bludgeon
cold
crush
drain
fire
lightning
magic
pierce
poison
slash
undefined
Spell 1
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 2
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 3
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 4
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 5
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 6
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 7
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 8
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 9
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Spell 10
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
% cast
Acid Cyclone
AMS
Blindness
Blink
Burning Hands
Cause Disease
Chill Touch
Colour Spray
Cure Critical Wounds
Cure Light Wounds
Cure Serious Wounds
Dispel Evil
Dispel Good
Drain Magic
Electric Shock
Energy Drain
Expose
Fire Spear
Fireball
Flamestrike
Fury
Harm
Heal
Iceball
Jinx
Lethal Fire
Lightning Bolt
Magic Missile
Miracle
Mirror Image
Petrify
Polymorph Pig
PWK
Powerheal
Prismatic Beam
Ray of Freezing
Shocking Grasp
Silence
Spiritual Hammer
Super Harm
Thunderball
Vampiric Touch
Weakness
Web
buffer
group
attackers
r_group
r_attackers
row1
row2
row3
all_row1
all_row2
all_row3
cleric
mage
thief
warrior
all_clerics
all_mages
all_thiefs
all_warriors
weakest
toughest
r_room
room
rooms_around
zone
world
Switch
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
buffer
r_group
r_attackers
row1
row2
row3
cleric
mage
thief
warrior
weakest
toughest
r_room
Actions
ISNPC
Hunter
Fast Aggro
Aggressive
Wimpy
Cleric
Mage
Thief
Nice Thief
Warrior
Memory
Spec
Sentinel
Scavenger
No Corpse
Stay-terrain
Stay-zone
Switch
Swim
Hide
Parry
Mercy
Anarchist
Affects
Blind
Curse
Det. Alignment
Det. Invisibility
Detect Magic
Dodge
Fly
Fury
Hide
Hold
Imp. Invisible
Invisible
Invulnerability
Paralysis
Poison
PFG
PFE
PFN
Sanctuary
Sense Life
Sleep
Sneak
True Sight
Immunities
Acid
Blindness
Bludgeon
Charm
Cold
Curse
Drain
Feeblemind
Fire
Lightning
Magic
Paralysis
Piercing
Poison
PWB
PWK
PWS
Silence
Slash
Sleep
Web
Protections
Acid
Lightning
Bludgeon
Magic
Cold
Piercing
Drain
Poison
Fire
Slash
Friends
Enemies
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
Special Attacks
Line that victim sees
Line seen by people in the room
$e / $E
=
he /she / it
$m / $M
=
him / her / it
$s / $S
=
his / hers / its
$n / $N
=
name of mob/player
Note: Capital letter codes will be replaced with the appropriate word for the victim and lower case codes will be replaced with the appropriate words for the mob.
Blocking
North
South
West
East
Up
Down
Direction to block
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
male
female
cleric
mage
thief
warrior
assassin
avenger
bard
conjurer
druid
enchanter
healer
inquisitor
necromancer
paladin
ranger
rogue
dwarf
elf
halfling
human
lemyrian
mandrake
orc
pixie
dragon
Player type to block
Message shown to player being blocked*
Message shown to room when player is blocked*
*Use Special Attack codes for player and mob names.
Load Items
Wear
Carry
Load
With
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
Wear
Carry
Load
With
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
Wear
Carry
Load
With
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
Wear
Carry
Load
With
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
Wear
Carry
Load
With
100
95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
4
3
2
1
%
last updated: 08 Feb 03


Invented by Chris St. Clair
Help page by Bill St. Clair
To begin a game, focus your attention below the board. Check the "remote" box if you want to play this game through the server at GibGoyGames.com. Otherwise the game will be local and you will play both players on your computer. Click the "public" box, if you want the game to be listed on the "Public" page. If you want the other player to know who you are, other than just "White", enter "Your name". Then click the "New Game" button. If you chose a "public" game, the other player will be able to join on the "Public" page. Otherwise, you'll have to communicate the "Game ID" somehow (usually via text or chat).
To join a game started by someone else, either go to the "Public" page, fill in "Your name", and click on the "Join" button next to the other player's name, or, on the main page, fill in "Your name", paste the "Game ID" from the other player, and click "Join Game".
The game starts in setup mode. White's pieces are in the row above the main board, black's below. Each player clicks a piece to select it (the first piece is selected by default, but you don't have to use it), then clicks in an empty square in the board to place it.
When all fourteen pieces have been placed, white takes the first turn.
The potential actors are highlighted in green. Click on one of them to select it.
With an actor selected, the potential subjects are highlighted in blue. Click one to select it, or click on the actor to unselect it and select another.
With a subject selected, all the potential target locations are highlighted in red. The center hole will be highlighted in red if a piece it to be pushed or pulled there or pushed off the board. Click a target location to move the subject piece there and change the color of the actor.

Your turn is over when you click the "End Turn" button, which is disabled during the first move of a turn or when in a Ko position. You may click "Undo" any time it's enabled to undo the previous move.
When no more moves are possible, or it is not possible to get into a non-Ko position, the game is over. Click the "New Game" button below the board to start a new game.
The game will automatically detect when both players either have no move or every move results in a Ko position. The message area will then say "Game Over!".
If you hover the mouse over a piece, a pop-up tooltip will tell you its name and how it acts.
Below the "New Game" button is a text area that is filled in during play with a textual encoding of the board position. If you save this, then later, right after clicking "New Game", you can paste the saved string back here and press the "Restore" button to return to the earlier position.


CLEARASIL DAILY CLEAR HYDRA-BLAST OIL-FREE FACE SCRUB- salicylic acid lotion
Reckitt Benckiser LLC
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active ingredient
Salicylic acid 2%
Use
for the treatment of acne
Warnings
For external use only
When using this product
- avoid contact with the eyes. If product gets into the eyes, rinse thoroughly with water.
- skin irritation and dryness is more likely to occur if you use another topical acne medication at the same time. If irritation occurs, only use one topical acne medication at a time.
- limit use to the face and neck
Keep out of reach of children. If swallowed, get medical help or contact a Poison Control Center right away.
Directions
- wet face
- dispense product into hands and massage gently onto face and neck, avoiding the delicate eye area
- cover the entire affected area with a thin layer and rinse thoroughly with warm water one to three times daily
- because excessive drying of the skin may occur, start with one application daily, then gradually increase to two or three times daily if needed or as directed by a doctor
- if bothersome dryness or peeling occurs, reduce application to once a day or every other day
Other information
- keep tightly closed
- store in a cool, dry place
Inactive ingredients
water, sodium laureth sulfate, polyethylene, propylene glycol, polyacrylate-1 crosspolymer, cocamidopropyl betaine, hydrogenated starch hydrolysate, fragrance, sodium chloride, citric acid, polyquaternium-43, phenoxyethanol, sodium benzoate, FD&C blue no. 1 lake
Questions?
Call 1-866-25-CLEAR (1-866-252-5327). You may also report side effects to this phone number.
Distributed by: Reckitt Benckiser LLC
Parsippany, NJ 07054-0224
Made in France
PRINCIPAL DISPLAY PANEL - 150 mL Tube Label
NEW
LOOK
Clearasil®
DAILY CLEAR®
Hydra-Blast
Oil Free Face Scrub
Salicylic Acid Acne Medication
Gently exfoliates
& helps keep
skin clear
of breakouts
WON'T
OVERDRY
5 FL OZ (150 mL)


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Tree
Deprecated
Index
Help
Prev Package
Next Package
Frames
No Frames
All Classes
Package org.mini2Dx.ui.xml.spi
Class Summary
Class
Description
AnimatedImageFactory
AnimatedImagePopulator
ButtonFactory
ButtonPopulator
CheckBoxFactory
CheckboxPopulator
ContainerFactory
CorePopulator
DivFactory
FlexRowFactory
FlexRowPopulator
ImageButtonFactory
ImageButtonPopulator
ImageFactory
ImagePopulator
LabelFactory
LabelPopulator
ParentUiElementPopulator
ProgressBarFactory
ProgressBarPopulator
RadioButtonFactory
RadioButtonPopulator
ScrollBoxFactory
ScrollBoxPopulator
SelectFactory
SelectPopulator
SliderFactory
SliderPopulator
TabFactory
TabPopulator
TabViewFactory
TabViewPopulator
TextBoxFactory
TextBoxPopulator
TextButtonFactory
TextButtonPopulator
XmlAttributeMapper
Exception Summary
Exception
Description
AbstractInvalidValueException
InvalidFlexDirectionException
InvalidVisibilityException
UnknownUiTagException
Skip navigation links
Overview
Package
Class
Tree
Deprecated
Index
Help
Prev Package
Next Package
Frames
No Frames
All Classes


In process of drafting a 510(k) application for a class 2 hand-held device used in quantification of dexterity across fingers to FDA.
Simulated corrective action plan that addressed the root cause of the problematic situation by considering ISO 13485 standards and incorporating FMEA.
Transcribed a SOP on “How to write a SOP for any medical device company” by considering all aspects of an ideal SOP.
Designed a neurostimulator to stimulate specific regions of hypoglossal nerve to keep the airway path open during sleep involving improved electrode and stimulation parameters design.
Developed MATLAB codes to compare the feasible force sets generated at the tip of the index finger between a healthy and symptomatic finger affected by radial nerve palsy disease.
Fabricated a AVR based wireless, wired or stand alone data logger system for a photo sensor which used ZigBee wireless protocol along with RS 232 serial communication protocol.
Ready to start your next project with me? That's great! Give me a call or send me an email and I will get back to you as soon as possible!


Meteor.JS Tutorial #1: Getting Started Guide for Meteor JS
If you're like me, you are cautiously optimistic about new technology, such as Meteor.js. I'm very excited to see how Meteor develops, and what it will mean for the future of web development. I've been playing around with Meteor, so I wanted to do a quick tutorial.
To get started, go get yourself a copy of Meteor.js. Once you have done that, create a sample application by typing meteor create my_app
at the console.
(This tutorial assumes you have basic web development and console skills.)
Now type cd my_app/
in terminal.
tree
├── my_app.css
├── my_app.html
└── my_app.js
Cool! You now have a single-page meteor app! You can put your styles in the css file (duh), now let's take a look at the MyApp.js file.
if (Meteor.isClient) {
Template.hello.greeting = function () {
return "Welcome to my_app.";
};
Template.hello.events({
'click input' : function () {
// template data, if any, is available in 'this'
if (typeof console !== 'undefined')
console.log("You pressed the button");
}
});
}
if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
}
The first thing I notice right off the bat is we have these Meteor.isClient
and Meteor.isServer
methods. Meteor has some sort of secret sauce that will make sure that
the code you put on the server side will not be exposed to the client, and vice versa (thankfully). There are certain things that you can and cannot do on the client side in
meteor, for the sake of data-security, but more on tht later.
The next thing I notice is the property on the Template
object. If we look at our my_app.html
file, we see

<title>my_app</title>

<template name="hello">

Hello World!

<input type="button" value="Click" />
</template>
In Meteor, we don't use HTML in the old-school way of compiling pages with server variables (MVC style), now there is this new idea of MVM, or Model-View-Model.
In Meteor, you will find that the server code is bound almost directly to the view. If we want something to happen server-side on click, we can simply call the
events
method the corresponding template. Meteor will bind Template.template_name
to the corresponding template, defined by the name attribute.
I hope this tutorial was a helpful intro into Meteor JS! If you're looking for more meteor, don't miss my tutorial on how to listen for events in Meteor.js!


 I like to eat good food and breath fresh air.
Hobbies: Video Games, Comics, Guitar, Video editing
Goals: Make a game, Make $$$$


|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
| Class Summary | |
|---|---|
| Attribute | An attribute. |
| BadRegexError | Alert which indicates that a
malformed regex pattern was specified for a gxp:param |
| ConflictingAttributesError | Alert which indicates that an
element has two different attributes when only one of either is allowed. |
| DuplicateImportError | Alert which indicates that a
duplicate Import was found. |
| IllegalVariableNameError | Alert which indicates that an
illegal variable name was encountered. |
| InvalidDoctypeError | Alert which indicates that an
invalid doctype was specified in gxp:doctype |
| InvalidRootError | Alert which indicates that the
root element of the document was something invalid. |
| InvalidTypeError | Alert which indicates that an
invalid type was specified. |
| MismatchedTemplateNameError | An Alert that indicates that
the specified template name doesn't match the file name. |
| MisplacedJavaAnnotationError | An ErrorAlert which indicates that a JavaAnnotation
with an what inapropriate for the current context was encountered. |
| MissingAttributesError | Alert which indicates that an
element requires at least one of the specified attributes, but none
were provided. |
| MoreThanOneConstructorError | Alert which indicates that
more than one <gxp:constructor> s were found for a single
template. |
| NoClausesInCondError | An ErrorAlert which indicates that a gxp:cond with
no clauses was encountered. |
| ReparentedTree | The output of Reparenter . |
| Reparenter | Moves gxp:attr , gxp:param , gxp:import
and gxp:throws into their parent elements. |
| RequiresStaticContentError | Alert which indicates that a
node that requires static content was found, but it contained dynamic
content. |
| UnknownContentTypeError | Alert which indicates that a
unknown content type was encountered. |
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


{% extends 'layout.html' %} {% block content %}
Koosli is an early-stage Norwegian and non-profit enterprise.
As a non-profit search platform, a user may select their preferred search engine and Koosli funds operation by selling default status to among these search providers. All search advertising proceeds are channelled to the beneficiaries you choose!
Test a Search using the architectural proof of concept.
Search knowing that your Koosli searches are protected from unwarranted behavioural profiling. Even cooler though is that Koosli adopts an open-source identity protocol that places you at the ultimate recursive level of policy governance for arbitration of digital identity.
In choosing for personalisation, consider that Josephine the Carpenter may introduce only as the Carpenter and have her identity contextually preserved without sacrificing anonymity; Josephine has autonomy to introduce herself as she sees fit.
The mission is to democratise identity.
The digital identity of our children is natured before they are born because the personal data of mother and father provides cross-contextual inference to the circumstance of rearing; digital identity is arbitrated beyond user control and with commercial priority.
Imagine instead a future where you are free to create and exchange behavioural identities. Ever wonder what it may be like to surf the Web subjected to the stimulus that [your favourite celebrity] would receive? Imagine attributing a behavioural identity to passively condition the digital immersion of our children so that their Web stimulus might foster critical thinking or [a relevant expertise]. The point is, you are at liberty to choose!
Register possible interest here while we develop this solution for scale!
Need contact? don |-at-| koosli |-dot-| org
{% endblock %}


{% extends "base.html" %} {% block content %} {# Currently, no indexes are being generated. #} {# The index on / is overridden with home.html. #} {% endblock content %}


This library service provides an interface named ChatApp, similar to the SpreadsheetApp and the DocumentApp provided by Google App Scripts. ChatApp provides the ability to dynamically configure and build Google Chat Card messages to render and inject into in the Google Chat platform
These Card Messages can be injected into the Chat plaform in direct response to a user onEvent OR ansynchronously in response to external events, e.g., a monitoring applicaiton, a pager utility, using webhooks
script id to be provided upon first deployment
into the Script ID * textBoxGenerated using TypeDoc


JavaScript is required to play this game.
Rat Pig Squid
Round 0
Choose your animal on the left.

Choose your animal on the left.


GStreamer
Section: User Commands (1)Updated: March 2001
Index Return to Main Contents
NAME
gst-xmlinspect - print info about a GStreamer plugin or elementSYNOPSIS
gst-xmlinspect [OPTION...] [PLUGIN|ELEMENT]DESCRIPTION
gst-xmlinspect is a tool that prints out information on available GStreamer plugins, information about a particular plugin, or information about a particular element. When executed with no PLUGIN or ELEMENT argument, gst-xmlinspect will print a list of all plugins and elements. When executed with a PLUGIN or ELEMENT argument, gst-xmlinspect will print information about that plug-in or element as an XML document.
OPTIONS
gst-xmlinspect accepts the following arguments and options:- PLUGIN
- Name of a plugin
- ELEMENT
- Name of an element
- --help
- Print help synopsis and available FLAGS
- --gst-info-mask=FLAGS
- GStreamer info flags to set (list with --help)
- --gst-debug-mask=FLAGS
- GStreamer debugging flags to set (list with --help)
- --gst-mask=FLAGS
- GStreamer info and debugging flags to set (list with --help)
- --gst-plugin-spew
- GStreamer info flags to set Enable printout of errors while loading GStreamer plugins
- --gst-plugin-path=PATH
- Add directories separated with ':' to the plugin search path
SEE ALSO
gst-feedback(1), gst-inspect(1), gst-launch(1), gst-typefind(1)AUTHOR
The GStreamer team at http://gstreamer.freedesktop.org/
Index
This document was created by man2html, using the manual pages.
Time: 05:29:04 GMT, December 24, 2015


{% include head.html %} {% include sidepanel.html %} {% include nav.html %} {% include header.html %} {% include about.html %} {% include services.html %} {% include map.html %} {% include picture_content.html %} {% include blog.html %} {% include picture_gallery.html %} {% include contact.html %} {% include footer.html %} {% include js.html %}


Chance of Rain
dummy content :-by @peopleiveloved + @leahmartharosenberg opens March 2, 2019 @ 6-9pm
Legion SF presents Chance of Rain for the month of March 2019. Acting as emotional forecasters, artists Leah Rosenberg and Carissa Potter will weather the storm by making soft gestures of self care. Humans have been working on systems of understanding and predicting the future for, well, a while. Leah and Carissa will work on harvesting data from their own emotional ups and own to predict and possibly change the outcome of the future.
808 SUTTER ST SAN FRANCISCO
415-733-7900
photos by vikas kumawat
I live in jaipur on a little hill in the India countryside, with my family and our cat Rosie, who is scared of everything except bulls. For as long as I can remember I have loved drawing and making things. I was lucky to grow up with parents who said I could do whatever I wanted as long as I cleaned up when I was finished.


This Tech World Of Ours
Why "Ours" Needs To Include Everyone
date
There has long been an untrue and ill-deserved stereotype of people working in technology as "geeks" or "nerds." As is the case with stereotyping any group of people, the exact definitions of those words are imprecise, subject to change by the whim of the people seeking to wield them. Strangely, however, it IS damning that this stereotype always in some way seeks to insult a man. That beneath the vitriol that people feel towards people working in technology is the implicit assumption that "people in technology" only implies "men who do technology things" should tip us off to something that is undeniably true: women are vastly underrepresented in the field.
This is not to say that the tech field will have an equality of genders if women also are made fun of. Let's not make fun of anyone, people! Instead, it points to a larger problem, where women are in many ways discouraged from entering the field and often disregarded if they do become members. Simply looking at my own DBC cohort, women make up only 22% of the group. But how can this be?
Let's start by talking about barriers. Ideally, nothing prevents anyone with the skills and means to do something should be able to do that thing. Okay, now that our heads are out of the clouds, it's not hard to see why a young woman wouldn't want to join the field. Tons of educational research shows that, beginning early on in their education, girls are discouraged from entering technology, as it is seen as one of the fields that is "supposed" to be for men. Combine that with the mysteriously subtle scrubbing of important women in tech history (did you know that Ada Lovelace is considered the first programmer?!), and it must seem to young women like entering the field is like navigating uncharted, unforgiving waters.
To make matters worse, getting into the field doesn't ensure being treated equally.  There are also subtler issues within the profession. In any hiring practices, "culture fit" is a term used to describe how an employer thinks a prospective hire will get along socially in the company. The lack of female presence in technology compounds itself here, as even on a subconscious level it might seem like bringing in women will "disturb the culture." Finally, amongst the technologies that you use most often, count the number of them that have female CEOs. Uncharted waters, huh?
What can we do about this? There are reasons unique to the tech field to be optimistic. Unlike in most other fields, there is no obvious wage gap between genders in technology. While obviously money isn't everything, it does indicate that female employees are valued by their employers at the same level as male employees. It doesn't take a large leap of logic to say that gender gap isn't because women and men are fundamentally different. Rather, speedbumps along the way keep women from getting in, or even wanting to try getting in, to the tech field. Let's change that.
twitter facebook email>


In Your Location From Sensors
- °C
-
For The City You Enter
-
Temperature formulas
| Conversion | Formula |
|---|---|
| Celcius To Fahrenheit | (0°C × 9/5) + 32 = 32°F |
| Celcius To Kelvin | 0°C + 273.15 = 273.15K |
| Fahrenheit To Celcius | (0°F - 32) × 5/9 = -17.78°C |
| Fahrenheit To Kelvin | (0°F - 32) × 5/9 + 273.15 = 255.372 K |
| Kelvin To Celcius | 0 K - 273.15 = -273.1°C |
| Kelvin To Fahrenheit | (0 K - 273.15) × 9/5 + 32 = -459.7°F |


Got {{events|length}} events in {{ districts|length }} districts
first_eid
name
city
state_prov
country
start_date
district
{% for event in events %}
{{event.first_eid}}
{{event.name}}
{{event.city}}
{{event.state_prov}}
{{event.country}}
{{event.start_date}}
{{event.district_key}}
{% endfor %}


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/std_basis.html ---
In the linear algebra library, there is something called is_basis
, and something called std_basis
. But if I understand correctlystd_basis
is not a basis, it is the canonical embedding of a factor into a product of modules, defined as follows.
/-- The standard basis of the product of `φ`. -/ def std_basis (i : ι) : φ i →ₗ[R] (Πi, φ i) := pi (diag i)
Should we change its name (and its docstring)?
Also, adding docstrings to lemmas such as
lemma is_basis_fun₀ : is_basis R (λ (ji : Σ (j : η), (λ _, unit) j), (std_basis R (λ (i : η), R) (ji.fst)) 1)
could help lower the entry barrier in this part of the library :)
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


| Quest | Type | Recommended to Complete? | Notes |
| A Captured Banner | Monthly Quest | Yes | Battlegrounds |
| A Curious Crystal | Monthly Quest | Yes | Dungeons |
| A New Darkmoon Challenger! | Daily Quest | Yes | |
| An Exotic Egg | Monthly Quest | Yes | Dungeons |
| An Intriguing Grimoire | Monthly Quest | Yes | Dungeons |
| Banners, Banners Everywhere! | Monthly Quest Tailoring | Yes | Requires:
|
| Darkmoon Pet Battle! | Daily Quest | Yes | |
| Eyes on the Prizes | Monthly Quest Leatherworking | Yes | Requires:
|
| Firebird's Challenge | Daily Quest | Yes | |
| He Shoots, He Scores! | Daily Quest | Yes | |
| It's Hammer Time | Daily Quest | Yes | |
| Ornate Weapon | Monthly Quest | Yes | Dungeons |
| Putting the Crunch in the Frog | Monthly Quest Cooking | Yes | Requires: 5 [Simple Flour] |
| Silas' Secret Stash | Quest | Yes | |
| Spoilin' for Salty Sea Dogs | Monthly Quest Fishing | Yes | |
| Tan My Hide | Monthly Quest Skinning | Yes | |
| Target: Turtle | Daily Quest | Yes | |
| Test Your Strength | Monthly Quest | Yes | |
| The Humanoid Cannonball | Daily Quest | Yes | |
| The Master Strategist | Monthly Quest | Yes | Dungeons |
| Tonk Commander | Daily Quest | Yes | |
| Welcome to the Darkmoon Races | Quest | Yes | Requires riding skill. |


infix fun <A, B> A.toMut(that: B): MutablePair<A, B>
Creates a tuple of type MutablePair from this and that.
Author bright_spark
Since 2.2,5


[1]
Awkward menu from the updated anytime you will never buy from them again.
[2]
Obviously i have used it here in USA and very quick menu from the updated anytime you will never buy from them again.


smart city
The Smart City Mission will cover 100 cities and its duration will be five years (FY 2015-16 to FY 2019-20).
The following list of cities and towns have been selected and announced by Ministry of Urban Development under smart cities mission. The State/UT wise list is given below:
| Sr. No. | Name of State/UT |
No. of cities shortlisted |
Names of selected Cities |
Population of Cities |
|---|---|---|---|---|
| 1 | Andaman & Nicobar Islands | 1 | 1. Port Blair | 1,40,572 |
| 2 | Andhra Pradesh | 3 | 1. Vishakhapatnam | 18,78,980 |
| 2. Tirupati | 3,74,260 | |||
| 3. Kakinada | 3,50,986 | |||
| 3 | Arunachal Pradesh | 1 | 1. Pasighat | 24,656 |
| 4 | Assam | 1 | 1. Guwahati | 9,62,334 |
| 5 | Bihar | 3 | 1. Muzaffarpur | 3,93,724 |
| 2. Bhagalpur | 4,10,210 | |||
| 3. Biharsharif | 2,96,889 | |||
| 6 | Chandigarh | 1 | 1. Chandigarh | 10,55,450 |
| 7 | Chhatisgarh | 2 | 1. Raipur | 10,47,389 |
| 2. Bilaspur | 3,65,579 | |||
| 8 | Daman & Diu | 1 | 1. Diu | 23,991 |
| 9 | Dadra & Nagar Haveli | 1 | 1. Silvassa | 98,032 |
| 10 | Delhi | 1 | 1. New Delhi Municipal Council | 2,49,998 |
| 11 | Goa | 1 | 1. Panaji | 1,00,000 |
| 12 | Gujarat | 6 | 1. Gandhinagar | 2,92,797 |
| 2. Ahmedabad | 55,77,940 | |||
| 3. Surat | 44,67,797 | |||
| 4. Vadodara | 17,52,371 | |||
| 5. Rajkot | 13,23,363 | |||
| 6. Dahod | 1,30,530 | |||
| 13 | Haryana | 2 | 1. Karnal | 3,02,140 |
| 2. Faridabad | 14,14,050 | |||
| 14 | Himachal Pradesh | 1 | 1. Dharamshala | 22,580 |
| 15 | Jharkhand | 1 | 1. Ranchi | 10,73,427 |
| 16 | Karnataka | 6 | 1. Mangaluru | 4,84,785 |
| 2. Belagavi | 4,88,292 | |||
| 3. Shivamogga | 3,22,428 | |||
| 4. Hubballi-Dharwad | 9,43,857 | |||
| 5. Tumakuru | 3,05,821 | |||
| 6. Davanegere | 4,35,128 | |||
| 17 | Kerala | 1 | 1. Kochi | 6,01,574 |
| 18 | Lakshadweep | 1 | 1. Kavaratti | 11,210 |
| 19 | Madhya Pradesh | 7 | 1. Bhopal | 19,22,130 |
| 2. Indore | 21,95,274 | |||
| 3. Jabalpur | 12,16,445 | |||
| 4. Gwalior | 11,59,032 | |||
| 5. Sagar | 2,73,296 | |||
| 6. Satna | 2,80,222 | |||
| 7. Ujjain | 5,15,215 | |||
| 20 | Maharashtra | 10 | 1. Navi Mumbai | 11,19,000 |
| 2. Nashik | 14,86,000 | |||
| 3. Thane | 18,41,000 | |||
| 4. Greater Mumbai | 1,24,00,000 | |||
| 5. Amravati | 7,45,000 | |||
| 6. Solapur | 9,52,000 | |||
| 7. Nagpur | 24,60,000 | |||
| 8. Kalyan-Dombivali | 15,18,000 | |||
| 9. Aurangabad | 11,65,000 | |||
| 10. Pune | 31,24,000 | |||
| 21 | Manipur | 1 | 1. Imphal | 2,68,243 |
| 22 | Meghalaya | 1 | 1. Shillong | 3,54,325 |
| 23 | Mizoram | 1 | 1. Aizawl | 2,91,000 |
| 24 | Nagaland | 1 | 1. Kohima | 1,07,000 |
| 25 | Odisha | 2 | 1. Bhubaneshwar | 8,40,834 |
| 2. Raurkela | 3,10,976 | |||
| 26 | Puducherry | 1 | 1. Oulgaret | 3,00,104 |
| 27 | Punjab | 3 | 1. Ludhiana | 16,18,879 |
| 2. Jalandhar | 8,68,181 | |||
| 3. Amritsar | 11,55,664 | |||
| 28 | Rajasthan | 4 | 1. Jaipur | 30,73,350 |
| 2. Udaipur | 4,75,150 | |||
| 3. Kota | 10,01,365 | |||
| 4. Ajmer | 5,51,360 | |||
| 29 | Sikkim | 1 | 1. Namchi | 12,190 |
| 30 | Tamil Nadu | 12 | 1. Tiruchirapalli | 9,16,674 |
| 2. Tirunelveli | 4,74,838 | |||
| 3. Dindigul, | 2,07,327 | |||
| 4. Thanjavur, | 2,22,943 | |||
| 5. Tiruppur, | 8,77,778 | |||
| 6. Salem, | 8,31,038 | |||
| 7. Vellore, | 5,04,079 | |||
| 8. Coimbatore, | 16,01,438 | |||
| 9. Madurai, | 15,61,129 | |||
| 10. Erode, | 4,98,129 | |||
| 11. Thoothukudi | 3,70,896 | |||
| 12. Chennai | 67,27,000 | |||
| 31 | Telangana | 2 | 1. Greater Hyderabad | 67,31,790 |
| 2. Greater Warangal | 8,19,406 | |||
| 32 | Tripura | 1 | 1. Agartala | 4,00,004 |
| 33 | Uttar Pradesh** | 12 | 1. Moradabad | 8,87,871 |
| 2. Aligarh | 8,74,408 | |||
| 3. Saharanpur | 7,05,478 | |||
| 4. Bareilly | 9,03,668 | |||
| 5. Jhansi | 5,05,693 | |||
| 6. Kanpur | 27,65,348 | |||
| 7. Allahabad | 11,12,544 | |||
| 8. Lucknow | 28,17,105 | |||
| 9. Varanasi | 11,98,491 | |||
| 10. Ghaziabad | 16,48,643 | |||
| 11. Agra | 15,85,704 | |||
| 12. Rampur | 3,25,313 | |||
| 34 | Uttarakhand | 1 | 1. Dehradun | 5,83,971 |
| 35 | West Bengal | 4 | 1. New Town Kolkata | 36,541 |
| 2. Bidhannagar | 6,33,704 | |||
| 3. Durgapur | 5,71,000 | |||
| 4. Haldia | 2,72,000 |


You up?: Jokowi the midnight caller
by Marchio Irfan GorbianoPresident Joko “Jokowi” Widodo opened up about the ups and downs of being president at a forum with journalists in Central Jakarta on Thursday.
At the discussion, which focused on infrastructure and human resource development, the President said that he often called his ministers in the middle of the night to discuss infrastructure and other matters.
When asked how late he would call the ministers, Jokowi said it depended on the day.
“It can be at 1:00 a.m, midnight, 2:30 a.m.,” he said. “If it is difficult [to reach] the minister, I’ll tell their aide to wake them up. It’s common for me to do that, just ask the ministers, the [Indonesian Military] commander, the National Police chief. The most recent is the Army chief of staff, whom I called at 12:30 a.m.”
He said that he often worked late into the night and would remember some important matter and call the relevant minister or official to ensure that the issue was handled quickly.
Jokowi said the long hours he kept caused him to sleep less than he did before becoming president.
“I often sleep in the car. [On the trip] between Jakarta and Bogor [Presidential Palace] I can get some sleep. On the plane I can sleep around 30 minutes. I can also sleep on helicopters. Others can’t,” he said. “At night, it’s true I sleep less, but alhamdulilllah [thank God] I am given the pleasure of being able to sleep anywhere.”
When asked if he enjoyed the country’s top job, the President joked, “I enjoy it. I enjoy the headaches.” (kmt)


◆ Get you team ready to login at the same time!
◆ Login using your Team Name and the unique Player 1 login code provided via email. We recommend playing in a
Laptop/PC.
◆ Get into a Video call with your team to decide your Game Plan!
◆ DO NOT share your screen with your teammates, you can describe it to them though!
◆ The Hints button is available in the bottom right corner of your screen. Use only if absolutely necessary.
◆ If you are stuck at any point, drop us an email or text for hints/issues.
◆ Once any member of your team logs in, the clock starts ticking! Only the top teams will make it into out
leader board.
Three best friends, set out on a road trip, find a huge abandoned mansion in the forest!
While exploring the colossal mansion they go separate ways into the Library, Garrage and Kitchen Bar, only
to find themselves locked up!
Will they open the Safe that holds the Key to Escape ?!
You enter the Kitchen Bar, there is a Safe in the table counter that holds the key to Escape the Box!
Find the CODE that opens the Safe!
Enter Team Name and Player 1 Code recieved
The Symbols are shaped as letters!
Enter the correct colour sequence from another room!
Tiles give the order and colour code of Final Answer
Grey Matter, matters !


This is for a structure where:
AB depends on A and B and Common
A depends on Common
B depends on Common
Common depends on nothing
Console Log:


Welcome to the WebSock chatroom! This chat room is a demonstration of the python package WebSock, a light weight multithreaded Websocket server written in python. Enjoy chatting, and in case their is no one to talk to we have added a chat bot who will always respond. You can check out the source code here!


If you are already registered for the course, please find (and post) resources to the #general Slack channel.
RL Textbooks and Lectures:
General Texts:
RL computing resources / frameworks:
Previous CS6101 versions run by Min:


 The name polycystic ovary syndrome describes the numerous small cysts (fluid-filled sacs) that form in the ovaries. However, some women with this disorder do not have cysts, while some women without the disorder do develop cysts. Ovulation occurs when a mature egg is released from an ovary. This happens so it can be fertilized by a male sperm. If the egg is not fertilized, it is sent out of the body during your period. In some cases, a woman doesn’t make enough of the hormones needed to ovulate. When ovulation doesn’t happen, the ovaries can develop many small cysts. These cysts make hormones called androgens. Women with PCOS often have high levels of androgens. This can cause more problems with a woman’s menstrual cycle. And it can cause many of the symptoms of PCOS. Treatment for PCOS is often done with medication. This can’t cure PCOS, but it helps reduce symptoms and prevent some health problems.
The exact cause of PCOS is not clear. Many women with PCOS have insulin resistance. This means the body can't use insulin well. Insulin levels build up in the body and may cause higher androgen levels. Obesity can also increase insulin levels and make PCOS symptoms worse. PCOS may also run in families. It's common for sisters or a mother and daughter to have PCOS.


Data-clipboard-text example
Add "data-clipboard-text" to anny element, click on it will execute the copy command on text with attribute value.
You can try it here.
Data-clipboard-target example
Add "data-clipboard-target" to anny element, click on it will execute the copy command. As a value use jQuery selector. Targeted element's value will be copied.
You can try it here.
Raw code example
Or you can just use jQuery selector to execute copy command on element's value/text.
$('.button').click(function(){ $(this).CopyToClipboard(); });
You can try it here.


--- layout: post title: "When x, y, and z are great variable names" description: "A common complaint against Functional Programming is the terse naming: x and y for variables, and f for functions. There are good reasons behind these names, though. Learn to love them here." date: 2015-08-17 7:43 UTC tags: [Productivity, F#, Functional Programming] --- {% include JB/setup %}
{{ page.description }}
One of the facets of Function Programming that bothered my when I first started to look into it, is that often in examples, variables and functions have terribly terse names like x
, y
, f
, and so on. I wasn't alone, feeling like that, either:
"Functional programmer: (noun) One who names variables "x", names functions "f", and names code patterns "zygohistomorphic prepromorphism"" - James IryIn this article, I'm not going to discuss zygohistomorphic prepromorphism, but I am going to discuss names like
x
and f
.
When I started my Functional Programming journey, I came from a SOLID Object-Oriented background, and I had read and internalised Clean Code - or so I thought.
Readable code should have descriptive names, and f
and x
hardly seem descriptive.
For a while, I thought that the underlying reason for those 'poor' names was that the people writing all that Functional example code were academics with little practical experience in software development. It seems I'm not the only person who had that thought.
It may be true that Functional Programming has a root in mathematics, and that it has grown out of academia rather than industry, but there are good reasons that some names seem rather generic.
In statically typed Functional languages like F# or Haskell, you rarely declare the types of functions and arguments. Instead, types are inferred, based on usage or implementation. It often turns out that functions are more generic than you first thought when you started writing it.
Here's a simple example. When I did the Diamond kata with Property-Based Testing, I created this little helper function along the way:
let isTwoIdenticalLetters x = let hasIdenticalLetters = x |> Seq.distinct |> Seq.length = 1 let hasTwoLetters = x |> Seq.length = 2 hasIdenticalLetters && hasTwoLetters
As the name of the function suggests, it tells us if x
is a string of two identical letters. It returns true for strings such as "ff", "AA", and "11", but false for values like "ab", "aA", and "TTT".
Okay, so there's already an x
there, but this function works on any string, so what else should I have called it? In C#, I'd probably called it text
, but that's at best negligibly better than x
.
Would you say that, based on the nice, descriptive name isTwoIdenticalLetters, you understand what the function does?
That may not be the case.
Consider the function's type: seq<'a> -> bool when 'a : equality
. What!? That's not what we expected! Where's the string
?
This function is more generic than I had in mind when I wrote it. System.String implements seq<char>, but this function can accept any seq<'a> (IEnumerable<T>), as long as the type argument 'a
supports equality comparison.
So it turns out that text
would have been a bad argument name after all. Perhaps xs
would have been better than x
, in order to indicate the plural nature of the argument, but that's about as much meaning as we can put into it. After all, this all works as well:
> isTwoIdenticalLetters [1; 1];; val it : bool = true > isTwoIdenticalLetters [TimeSpan.FromMinutes 1.; TimeSpan.FromMinutes 1.];; val it : bool = true > isTwoIdenticalLetters [true; true; true];; val it : bool = false
That function name is misleading, so you'd want to rename it:
let isTwoIdenticalElements x = let hasIdenticalLetters = x |> Seq.distinct |> Seq.length = 1 let hasTwoLetters = x |> Seq.length = 2 hasIdenticalLetters && hasTwoLetters
That's better, but now the names of the values hasIdenticalLetters and hasTwoLetters are misleading as well. Both are boolean values, but they're not particularly about letters.
This may be more honest:
let isTwoIdenticalElements x = let hasIdenticalElements = x |> Seq.distinct |> Seq.length = 1 let hasTwoElements = x |> Seq.length = 2 hasIdenticalElements && hasTwoElements
This is better, but now I'm beginning to realize that I've been thinking too much about strings and letters, and not about the more general question this function apparently answers. A more straightforward (depending on your perspective) implementation may be this:
let isTwoIdenticalElements x = match x |> Seq.truncate 3 |> Seq.toList with | [y; z] -> y = z | _ -> false
This may be slightly more efficient, because it doesn't have to traverse the sequence twice, but most importantly, I think it looks more idiomatic.
Notice the return of 'Functional' names like y
and z
. Although terse, these are appropriate names. Both y
and z
are values of the generic type argument 'a
. If not y
and z
, then what would you call them? element1
and element2
? How would those names be better?
Because of F#'s strong type inference, you'll frequently experience that if you use as few type annotations as possible, the functions often turn out to be generic, both in the technical sense of the word, but also in the English interpretation of it.
Likewise, when you create higher-order functions, functions passed in as arguments are often generic as well. Such a function could sometimes be any function that matches the required type, which means that f
is often the most appropriate name for it.
Another problem I had with the Functional naming style when I started writing F# code was that names were often short. Having done Object-Oriented Programming for years, I'd learned that names should be sufficiently long to be descriptive. As Code Complete explains, teamMemberCount
is better than tmc
.
Using that argument, you'd think that element1
and element2
are better names than y
and z
. Let's try:
let isTwoIdenticalElements x = match x |> Seq.truncate 3 |> Seq.toList with | [element1; element2] -> element1 = element2 | _ -> false
At this point, the discussion becomes subjective, but I don't think this change is helpful. Quite contrary, these longer names only seem to add more noise to the code. Originally, the distance between where y
and z
are introduced and where they're used was only a few characters. In the case of z
, that distance was 9 characters. After the rename, the distance between where element2
is introduced and used is now 16 characters.
There's nothing new about this. Remarkably, I can find support for my dislike of long names in small scopes in Clean Code (which isn't about Functional Programming at all). In the last chapter about smells and heuristics, Robert C. Martin has this to say about scope and naming:
"The length of a name should be related to the length of the scope. You can use very short variable names for tiny scopes, but for big scopes you should use longer names.
"Variable names like
i
andj
are just fine if their scope is five lines long."
Do you use variable names like i
in for
loops in C# or Java? I do, so I find it appropriate to also use short names in small functions in F# and Haskell.
Well-factored Functional code consists of small, concise functions, just as well-factored SOLID code consists of small classes with clear responsibilities. When functions are small, scopes are small, so it's only natural that we encounter many tersely named variables like x
, y
, and f
.
It's more readable that way.
There are at least two good reasons for naming values and functions with short names like f
, x
, and y
.
Comments
Dave, thank you for writing. FWIW, I don't think there's anything wrong with longer camel-cased names when a function or a value is more explicit. As an example, I still kept the name of the example function fairly long and explicit:
isTwoIdenticalElements
.When I started with F#, I had many years of experience with writing C# code, and in the beginning, my F# code was more verbose than it is today. What I'm trying to explain with this article isn't that the short names are terse for the sake of being terse, but rather because sometimes, the functions and values are so generic that they could be anything. When that happens,
f
andx
are good names. When functions and values are less generic, the names still ought to be more descriptive.


In finance, an option is a contract which gives the buyer (the owner or holder of the option) the right, but not the obligation, to buy or sell an underlying asset or instrument at a specified strike price prior to or on a specified date, depending on the form of the option. ...


Phishing Attackers Locations
Distribution of Attacker Locations on the world map
Bubble Map
The Bubble visualizes Distribution of Attacker Locations on the world map??
Distribution of Attacker Locations on the world map
The Bubble visualizes Distribution of Attacker Locations on the world map??
Plotting attack urgency with a bar plot visualizations
A small showreel which consists of various vizualizations like trends, pie chart etc


New domain, but you'd never notice 2007/09/09
I recently snagged rcrowley.org when someone didn't renew it and spent a bit of this morning transitioning everything into place. The site itself was easy. I just setup a new domain on TextDrive and copied all of the code to this new domain. The database is shared, so no mysqldump
'ing was necessary. Then I replaced the .htaccess
file at richarddcrowley.org to forward traffic to the new domain before deleting the code part of the site from that domain.
The RSS feed is handled by FeedBurner, so changing the source there was no big deal. However, I'd like to transition over to feeds.feedburner.com/rcrowley instead of feeds.feedburner.com/richarddcrowley. I have both going right now and have changed all my links to the new one. If you would be a kind soul and change your RSS reader to point to feeds.feedburner.com/rcrowley, I'd be nearly eternally grateful.