胡斌

版本 1.1.0

1.去除推流等功能,仅保留手写板支持
  2.wss server由TLS 1.0 改为TLS 1.2
  source git: http://123.56.226.173/hubin/liveAssistant.git
  branch: liveserv
  commit   3972fa63f0c3f38a9d74cb7bb4c15f4cd52fe0fa
@@ -51,3 +51,6 @@ @@ -51,3 +51,6 @@
51 版本 1.0.10 51 版本 1.0.10
52 1.支持PendoTech PH-1820-A USB智写板 52 1.支持PendoTech PH-1820-A USB智写板
53 53
  54 +版本 1.1.0
  55 +1.去除推流等功能,仅保留手写板支持
  56 +2.wss server由TLS 1.0 改为TLS 1.2
不能预览此文件类型
1 -[Encode]  
2 -codetype=6  
3 -width = 480  
4 -height= 360  
5 -fps= 12  
6 -bt=800  
7 -goptype=1  
8 -minqp=25  
9 -maxqp=25  
10 -  
11 -imtu=1000  
12 -spmtu=1000  
13 -pmtu=1000  
14 -ifec=0  
15 -spfec=0  
16 -pfec=0  
17 -ifecmpkg=4  
18 -spfecmpkg=3  
19 -pfecmpkg=2  
20 -ifecmpkgsize=600  
21 -spfecmpkgsize=500  
22 -pfecmpkgsize=500  
23 -gop=50  
24 -encmode=0  
25 -  
26 -QClearswh = 1  
27 -QCleargrade = 0  
28 -Fecswh = 1  
29 -  
30 -[Audio]  
31 -CodecType = 4103  
32 -SampleRate = 48000  
33 -ChnNum = 2  
34 -Bitrate = 64000  
35 -Lost = 0  
36 -RECN = 6  
37 -RECM = 0  
38 -AudioMTU = 0  
39 -PackDuration = 60  
40 -rate_type = 0  
41 -DTX_enable = 0  
42 -VAD_enable = 0  
43 -aec_enable = 0  
44 -ns_enable = 0  
45 -agc_enable = 0  
46 -lostfb_enable = 0  
47 -FecFlag = 0  
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
1 -[Udt]  
2 -FirstGetTime = 500  
3 -GetPkgTimeout = 2500  
4 -NextGetTime = 500  
5 -RecvQueuePeriod = 2000  
6 -  
7 -MaxResendCnt = 5  
8 -SendQueuePeriod= 2000  
9 -ResendMax = 2000  
10 -ResendMin = 200  
11 -RTTDelta = 150  
12 -TimerResendCnt = 3  
13 -  
14 -EnableUDT = 1  
15 -  
16 -CalcSendLossTime = 2000  
17 -  
18 -TimelineDelta = 1000  
不能预览此文件类型
不能预览此文件类型
This file is too large to display.
不能预览此文件类型
1 -regsvr32 /s %~dp0\audio_sniffer.dll  
1 -regsvr32 /s "%~dp0\audio_sniffer-x64.dll"  
不能预览此文件类型
不能预览此文件类型
1 -regsvr32 /u /s %~dp0\audio_sniffer.dll  
1 -regsvr32 /u /s "%~dp0\audio_sniffer-x64.dll"  
This file is too large to display.
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
1 -----BEGIN RSA PRIVATE KEY----- 1 -----BEGIN RSA PRIVATE KEY-----
2 -MIIEpAIBAAKCAQEA0KggjzRE4yARurOmmyNPykVYnnT2jkfWQoGzN7uGZ8/ZT9nL  
3 -qqkrU61dSqPgZpPvGhsUzjEnqWqQubXF2XhjyaTj0+hDzGOX9k4pZ37H96oWWyF2  
4 -QYLe9GrcznVhxZnx8foNnZExiCO6TOJgBVGLTFhtwgPF57e/sL6IxsDvp58Mt1eP  
5 -qB4Wsl3e/YnTZdaQV38QfEuTTSU0OC3hufUpGlb4DMX3N+gT1kWAtjq5frjX5KxE  
6 -w407mSHkaT/IKPZg5XKFPg7faQSrmq39bXygUL6UCh8ue4cJPG+A8bx7/Ov/+Rzh  
7 -YpOcuzNQeKVmPX3mlUdHg72NsWLKK65AnRcQKQIDAQABAoIBAQCv8kXaW8oG98Db  
8 -fafsw98Bgm5S1/AcVCkxVaspQOD6YwMtWUtrclFNsy+qw/typCYIDnQB1uNJ8clu  
9 -QABA/Eqw+3D9/KpHDGhU0t4JHphCmFNXryTH4zJcSkw9cC/s735cfG3Ew21QDkiH  
10 -kpBDi9p5m0uaQZI9be2ffVtatdCgt2+xmUHZzYro6vvvB4NqDO6Kw63nr3jVu0yi  
11 -ZOE3canF0P7dgAu4z8ADPO9Qdw62ghhMM2T4CRaTsoC24nzYf1D9lR9AEOagbxm3  
12 -wlFu0XvcjxHziSmJI4pv8wJFtFiz7PC3uaVBAqK7ES5R6faJXg8brOgzKmPRuoGs  
13 -6sfL3d2BAoGBAPiXNdQjdQpPVGh9PwYOX1cSV0IyMvrLxqym1WcfFXzxoo4v7N3e  
14 -Ib5ycUHu+7yT7DqRikgDWoN8LZJYy8c+wnfJwQ5PgLGfVL6fRNE2ZtWVjA+1+CN3  
15 -Vm53mFpRmsTojGuCRpayFOpq6tMhdv53hL1FtBAGzNnHRA45iKsjWBWxAoGBANbg  
16 -NtcZZTtBWvYXUx/derH8sv4FGqU9Jbm2//4j60VguuCPlILBwFN+0CI8fE+OdUDM  
17 -8WgXMugCJ9XkIlOSG5fHF15nB4Q+y59BevJCN5ditavo447X+SqBVJq28rCY/I89  
18 -i+xjrlnmrvrDHo98PciQhDtFuogZze3vzPs93Cf5AoGATV5abXzfl2bbQW4BqHPe  
19 -rm3R5JNVFINJgUCnWGHvQSS/T/uQf/j7jZd2smubw7RSKGRVolYQ3K1QTaT/PzLE  
20 -OZ38TOTni+Cn8nAFbgu9c6oInncnFHq21si4DRwqzDAITAmOyKYCJndCQJXAwDAY  
21 -iwPfp8FGDl2bS8YSSBlG9/ECgYAiF4Tb792N3zqtXNoFbkBvSOalQu4NVXxM0Oog  
22 -ylYjtcswodcwP8lh9fbT18DpZnLYCywqFbQv91eWqhGALOhP1niws6wPoV7xL5Rw  
23 -J21miXTFh7fDDCUuR0LDIU+0ETHREDTJFq+s99q/UoHgxhePYM56EQAdY+q2W5us  
24 -KQ5rEQKBgQDvnix7EFWNMZIigpufv7xvhVDdrrs29GMqBXH3tVCUo+LpL8WgR8Iv  
25 -7NHy1g3pO8bhBoi7ZgLTstD6R9KE+0zj2TIdVjMh8TbaVqNGlNv6ZBQGyXOGCWUY  
26 -wh/jQK3poLUN2qoV3LJj5H8EicxvFnP4Q9bPSNSTKFoL8djf3YbV1w== 2 +MIIEpAIBAAKCAQEAtBKcWLvkqGebkrCE9zTDRvMRKsdtqnxv78vFCfe46xmxKMEJ
  3 +aLCSGTba610wYr3g1DSYjnxbUT8JCModwa4TADcUUc1q1NvWBHhrZ+7thbSGbxEw
  4 +HqEJ0zrEJYqkcZa3HaHeEeJeW8jx+bBmgyhQIfW3kp6atOw+P/B252Yqu0BWvAOp
  5 +UDqLKDEWOsxXAGpak+GsMB5b/Sb8VWUGQCKF225Vz6xpNBCD2+ZxzEh633UNQrMW
  6 +l3ySNViIVQp8ljVNiXcOyvs5cQnPwLXAUya2qaQcyuWf3oQQ6Ygy8AWk4m+AQu37
  7 +vjtonpLDh5EJJUChCC8BvOWnKMv6t7KeyEZhfQIDAQABAoIBAGnhc4r9WBLpcOGM
  8 +53IP1S63p4V24/XV21+tejtFLLcYUUH8V1L2V8F5rrmr/tJggX1lO7q0RmF8ZgyE
  9 +A4EpoMSEnm8HEOT+KlZQlB71rzXqEw3llly8JfHM4R6N6elcTGmhDtmHOCJSAm3l
  10 +mjFOl+eP+pO8rIzrSCMCenfPbBrTWl9qbBqvwULF/HtW0cX+LqKf0enLsNYPXUd6
  11 +yE2x62kliid1P8S94HPGmDLpTHvZYLql5Nh7PSXWXUi70FP5QztI1gZPegJNRYNp
  12 +SPLzj0N+MftuWNBq9dwjjUHVvGwg1nNxR+4bo5YHvYO4p/Ln2I9j8XRqsv4H7r+9
  13 +I1LRwUUCgYEA216sXPaMptFo32MCWkdSi3zsOAdlzHbKMa9KB25g59tsJTnnXykw
  14 +fnxadXIr5NZmh6dk+cyUkVLfoNPb4ErZUN1KcCxgLq22eclylJ5F4yESE686rN7F
  15 +GEa22KRpSxOBZh7UC+FulSUfkMKg1295eur64rsGeXD9JrRYeHaoiLsCgYEA0iQd
  16 +7FPBHjf5tIg/JCixvKfhLnJbqAifiOGQC5rEpVV0hOiaOmz/yAf81610kUVpgT3o
  17 +yRCAQ5OL3Q+Ix5+bGo6jP0YWOhJMoklNTlfcogioNuVxYGwsR0djyeFnd+WTTdt6
  18 +eZ9Ml57RAvRNzqlFGlxI/tTUQRd428m3LPFGVycCgYEAlSvCv5B0QnfB/a2hCuzX
  19 +B71SECOPqMLaaYDOMVFwmhmOZ54BZKdor4o2JQkXKgxVOketFWR1XoDhSsbmDJY5
  20 +QpDILpEucm9z10sSHFeoJHP3i+UrXCQ8GG71pUnfw8qmwl+SR+XqwYa1+UUwBG9s
  21 +RxaEtisBkxEvQ+N9CaV+o0MCgYEAwl2Hk9Qv9kxd2R6AEGjXZKB+xiAeKMC5FrlT
  22 +K3ieVDJDUL94D3xL5O+GbNLR06A5IsJpcrehe1+YaQJ6R/GXW6v80IR6AIJ2gVB9
  23 +gW4A85pARG5aPI4xMkiUwuCKfDpK0iOkF6RBCqhpuGrRIMot0WD0X0fpfr9AGUJs
  24 ++9O6dNcCgYBCgr0bqG1BKmsNQ4NtYhgpLhFouSZD4kd5JORU4Tt34yV43JsWWgW7
  25 +y8kU15lCJfNJ5I4/SITayi5sT2mZRWqi0Twqwfq0WRWZ/C0mBO6qrJcDROJFBFgP
  26 +dYBIWI10+dua9EO9J1MaTdVF66gjxWReEv53CALOJA50BA3MJXLg2Q==
27 -----END RSA PRIVATE KEY----- 27 -----END RSA PRIVATE KEY-----
1 -----BEGIN CERTIFICATE----- 1 -----BEGIN CERTIFICATE-----
2 -MIIGCTCCBPGgAwIBAgIMU8HkTasUwK4PnEA8MA0GCSqGSIb3DQEBCwUAMFAxCzAJ 2 +MIIGCTCCBPGgAwIBAgIMK8/QrkOsSdb3dzpJMA0GCSqGSIb3DQEBCwUAMFAxCzAJ
3 BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSYwJAYDVQQDEx1H 3 BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSYwJAYDVQQDEx1H
4 -bG9iYWxTaWduIFJTQSBPViBTU0wgQ0EgMjAxODAeFw0xOTA4MjcwNjM1MjRaFw0y  
5 -MDEwMTIwOTUzMjhaMIGTMQswCQYDVQQGEwJDTjEPMA0GA1UECAwG5YyX5LqsMQ8w 4 +bG9iYWxTaWduIFJTQSBPViBTU0wgQ0EgMjAxODAeFw0yMDA5MjkwNTQ1NTBaFw0y
  5 +MTEwMzEwMTE2MTFaMIGTMQswCQYDVQQGEwJDTjEPMA0GA1UECAwG5YyX5LqsMQ8w
6 DQYDVQQHDAbljJfkuqwxEjAQBgNVBAsMCei/kOiQpemDqDEzMDEGA1UECgwq5LiJ 6 DQYDVQQHDAbljJfkuqwxEjAQBgNVBAsMCei/kOiQpemDqDEzMDEGA1UECgwq5LiJ
7 6IqS5LiW57qq77yI5YyX5Lqs77yJ56eR5oqA5pyJ6ZmQ5YWs5Y+4MRkwFwYDVQQD 7 6IqS5LiW57qq77yI5YyX5Lqs77yJ56eR5oqA5pyJ6ZmQ5YWs5Y+4MRkwFwYDVQQD
8 DBAqLnh1ZWRpYW55dW4uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC 8 DBAqLnh1ZWRpYW55dW4uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
9 -AQEA0KggjzRE4yARurOmmyNPykVYnnT2jkfWQoGzN7uGZ8/ZT9nLqqkrU61dSqPg  
10 -ZpPvGhsUzjEnqWqQubXF2XhjyaTj0+hDzGOX9k4pZ37H96oWWyF2QYLe9GrcznVh  
11 -xZnx8foNnZExiCO6TOJgBVGLTFhtwgPF57e/sL6IxsDvp58Mt1ePqB4Wsl3e/YnT  
12 -ZdaQV38QfEuTTSU0OC3hufUpGlb4DMX3N+gT1kWAtjq5frjX5KxEw407mSHkaT/I  
13 -KPZg5XKFPg7faQSrmq39bXygUL6UCh8ue4cJPG+A8bx7/Ov/+RzhYpOcuzNQeKVm  
14 -PX3mlUdHg72NsWLKK65AnRcQKQIDAQABo4ICnTCCApkwDgYDVR0PAQH/BAQDAgWg 9 +AQEAtBKcWLvkqGebkrCE9zTDRvMRKsdtqnxv78vFCfe46xmxKMEJaLCSGTba610w
  10 +Yr3g1DSYjnxbUT8JCModwa4TADcUUc1q1NvWBHhrZ+7thbSGbxEwHqEJ0zrEJYqk
  11 +cZa3HaHeEeJeW8jx+bBmgyhQIfW3kp6atOw+P/B252Yqu0BWvAOpUDqLKDEWOsxX
  12 +AGpak+GsMB5b/Sb8VWUGQCKF225Vz6xpNBCD2+ZxzEh633UNQrMWl3ySNViIVQp8
  13 +ljVNiXcOyvs5cQnPwLXAUya2qaQcyuWf3oQQ6Ygy8AWk4m+AQu37vjtonpLDh5EJ
  14 +JUChCC8BvOWnKMv6t7KeyEZhfQIDAQABo4ICnTCCApkwDgYDVR0PAQH/BAQDAgWg
15 MIGOBggrBgEFBQcBAQSBgTB/MEQGCCsGAQUFBzAChjhodHRwOi8vc2VjdXJlLmds 15 MIGOBggrBgEFBQcBAQSBgTB/MEQGCCsGAQUFBzAChjhodHRwOi8vc2VjdXJlLmds
16 b2JhbHNpZ24uY29tL2NhY2VydC9nc3JzYW92c3NsY2EyMDE4LmNydDA3BggrBgEF 16 b2JhbHNpZ24uY29tL2NhY2VydC9nc3JzYW92c3NsY2EyMDE4LmNydDA3BggrBgEF
17 BQcwAYYraHR0cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vZ3Nyc2FvdnNzbGNhMjAx 17 BQcwAYYraHR0cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vZ3Nyc2FvdnNzbGNhMjAx
@@ -19,19 +19,19 @@ ODBWBgNVHSAETzBNMEEGCSsGAQQBoDIBFDA0MDIGCCsGAQUFBwIBFiZodHRwczov @@ -19,19 +19,19 @@ ODBWBgNVHSAETzBNMEEGCSsGAQQBoDIBFDA0MDIGCCsGAQUFBwIBFiZodHRwczov
19 L3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAIBgZngQwBAgIwCQYDVR0T 19 L3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAIBgZngQwBAgIwCQYDVR0T
20 BAIwADArBgNVHREEJDAighAqLnh1ZWRpYW55dW4uY29tgg54dWVkaWFueXVuLmNv 20 BAIwADArBgNVHREEJDAighAqLnh1ZWRpYW55dW4uY29tgg54dWVkaWFueXVuLmNv
21 bTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAU+O9/ 21 bTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAU+O9/
22 -8s14Z6jeb48kjYjxhwMCs+swHQYDVR0OBBYEFNtg3ep5/qID/d0SQuRH1PF8iQu0  
23 -MIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYA7ku9t3XOYLrhQmkfq+GeZqMPfl+w  
24 -ctiDAMR7iXqo/csAAAFs0clO2AAABAMARzBFAiEAiGiqep0KK0p4s5VguosdGOOt  
25 -x9fOn1s9hqnkKm/YG14CIAnQMiQXHARNgaewJsh1HtAj9E6bX2ywnR8uH4ec3Zxp  
26 -AHcAh3W/51l8+IxDmV+9827/Vo1HVjb/SrVgwbTq/16ggw8AAAFs0clOmAAABAMA  
27 -SDBGAiEApE4WFltEvnNOUwuilBVRPH2dZE4eo2q4MDjUZ8+aGPgCIQCgL95ZKmpO  
28 -GNxP1yIWZkeT/kqO8bZijn9WSSF2tLYjnzANBgkqhkiG9w0BAQsFAAOCAQEAnjiW  
29 -NHRXqGgvNvPwroFVSCQMu/Feo95ks2GtW+n+/VoobujfoqoS/WnfD/R13qj8/L3Z  
30 -n6RaK49WkiaXFidK8ur7HnLbH4ZTzZVMKPBQ2u+CLsOHAuGm9Cvm5vmZwRjn5KLU  
31 -ifP4fUMd5KEpqyDqhUj4PIDiPx5hXdAIqyijUjDuMjkE6FqjyNzLedFLOnSN0yTh  
32 -GV3OLrKMpe9RRpnIt+yYe6/Ou8n/c6x8hcZM48HC126YmFKf4a0v0or8j+TiBiwP  
33 -NB8V7jxG2FpzKGkezRA5ewsGeNL0Pe92tmkaiXS5e2UKz7gvLQ8kSCpZisKRI3L3  
34 -gpHutUClEZpAXPF/cQ== 22 +8s14Z6jeb48kjYjxhwMCs+swHQYDVR0OBBYEFOdLdfWalzeQFRiPQLYRQ1+gVdgp
  23 +MIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkC
  24 +wQApBo2yCJo32RMAAAF02GVTAAAABAMARzBFAiEAgQWqUmlpvqEqNR7/ynMIQlMz
  25 +vRZ3cb85g2K7mCqiXBMCIDiOTFVpXndIfwCX+Tq1wc8K1wkG+A73Q806R3F14U5O
  26 +AHcA9lyUL9F3MCIUVBgIMJRWjuNNExkzv98MLyALzE7xZOMAAAF02GVVsgAABAMA
  27 +SDBGAiEAj23yNAVi8s/z/g0xbNw+fZ7uXBOQRjBQSfZiztBGKDMCIQCkCOPs53Hg
  28 +8rGd77I8Yc676gELflWrvDG/5mFjemhy8zANBgkqhkiG9w0BAQsFAAOCAQEAYS1q
  29 +ZbDMu28qua0p1dhRcbdaesjE2m75lq9Qq0etju8fE28wkrl04/kxdEXiOKlMFeI2
  30 +bHrfbO8z48FFllDY96RdAxB9Mn50NBq8MPbzOVJITj25psY0r+mbgAJDWjw/qefH
  31 +5OuSSYTvmbRbA8YXelI8YiSToDfueXzGscnnEBXTK3SvSFCCcSbuhQpnt5a/PM1h
  32 +Y4EcNRaZisTaTCv62cfsHMXNuvmu50Wahp/Yt30vGVVkZIAsUG2WRb8rKxkLqlZ3
  33 +IP1LreTW6oA1H53H7eiSyMq5AP4y6YlrnR6gpKm/FEidRkoH9wm7YkrG9jYCQazR
  34 +GiORQiNw+OzawZRVuA==
35 -----END CERTIFICATE----- 35 -----END CERTIFICATE-----
36 -----BEGIN CERTIFICATE----- 36 -----BEGIN CERTIFICATE-----
37 MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw 37 MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw
@@ -56,5 +56,6 @@ EdSIhlIoU4r7rd/9c446ZwTbw1MUcBQJfMPg+NccmBqixD7b6QDjynCy8SIwIVbb @@ -56,5 +56,6 @@ EdSIhlIoU4r7rd/9c446ZwTbw1MUcBQJfMPg+NccmBqixD7b6QDjynCy8SIwIVbb
56 0615XoFYC20UgDX1b10d65pHBf9ZjQCxQNqQmJYaumxtf4z1s4DfjGRzNpZ5eWl0 56 0615XoFYC20UgDX1b10d65pHBf9ZjQCxQNqQmJYaumxtf4z1s4DfjGRzNpZ5eWl0
57 6r/4ngGPoJVpjemEuunl1Ig423g7mNA2eymw0lIYkN5SQwCuaifIFJ6GlazhgDEw 57 6r/4ngGPoJVpjemEuunl1Ig423g7mNA2eymw0lIYkN5SQwCuaifIFJ6GlazhgDEw
58 fpolu4usBCOmmQDo8dIm7A9+O4orkjgTHY+GzYZSR+Y0fFukAj6KYXwidlNalFMz 58 fpolu4usBCOmmQDo8dIm7A9+O4orkjgTHY+GzYZSR+Y0fFukAj6KYXwidlNalFMz
59 -hriSqHKvoflShx8xpfywgVcvzfTO3PYkz6fiNJBonf6q8amaEsybwMbDqKWwIX7eSPY= 59 +hriSqHKvoflShx8xpfywgVcvzfTO3PYkz6fiNJBonf6q8amaEsybwMbDqKWwIX7e
  60 +SPY=
60 -----END CERTIFICATE----- 61 -----END CERTIFICATE-----
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
1 -[RTMP]  
2 -port=1935  
3 -