shithub: openh264

Download patch

ref: 19d9bd85950d1d636781f5a2970310cf8209c80e
parent: b889f392ab866f1b1c451fedc7968e3e3bff8ac1
author: Karina <[email protected]>
date: Tue May 16 07:44:17 EDT 2017

limit idr qp range by using external setting

--- a/codec/encoder/core/src/ratectl.cpp
+++ b/codec/encoder/core/src/ratectl.cpp
@@ -419,6 +419,8 @@
   }
   int32_t iMaxQp = iQpRangeArray[i][0];
   int32_t iMinQp = iQpRangeArray[i][1];
+  iMinQp = WELS_CLIP3 (iMinQp, pWelsSvcRc->iMinQp, pWelsSvcRc->iMaxQp);
+  iMaxQp = WELS_CLIP3 (iMaxQp, pWelsSvcRc->iMinQp, pWelsSvcRc->iMaxQp);
   if (0 == pWelsSvcRc->iIdrNum) { //the first IDR frame
     pWelsSvcRc->iInitialQp = dInitialQPArray[iBppIndex][i];
   } else {
@@ -436,6 +438,7 @@
                                          (pWelsSvcRc->iTargetBits * INT_MULTIPLY));
     pWelsSvcRc->iInitialQp = RcConvertQStep2Qp (pWelsSvcRc->iQStep);
   }
+
   pWelsSvcRc->iInitialQp = WELS_CLIP3 (pWelsSvcRc->iInitialQp, iMinQp, iMaxQp);
   pEncCtx->iGlobalQp = pWelsSvcRc->iInitialQp;
   pWelsSvcRc->iQStep = RcConvertQp2QStep (pEncCtx->iGlobalQp);
@@ -510,12 +513,12 @@
   pEncCtx->iGlobalQp = iLumaQp;
 }
 
-void GomRCInitForOneSlice(SSlice* pSlice, const int32_t kiBitsPerMb) {
+void GomRCInitForOneSlice (SSlice* pSlice, const int32_t kiBitsPerMb) {
   SRCSlicing* pSOverRc        = &pSlice->sSlicingOverRc;
   pSOverRc->iStartMbSlice     = pSlice->sSliceHeaderExt.sSliceHeader.iFirstMbInSlice;
   pSOverRc->iEndMbSlice       = pSOverRc->iStartMbSlice + pSlice->iCountMbNumInSlice - 1;
   pSOverRc->iTargetBitsSlice  = WELS_DIV_ROUND (static_cast<int64_t> (kiBitsPerMb) * pSlice->iCountMbNumInSlice,
-                                                INT_MULTIPLY);
+                                INT_MULTIPLY);
 }
 
 void RcInitSliceInformation (sWelsEncCtx* pEncCtx) {
@@ -523,18 +526,18 @@
   SWelsSvcRc* pWelsSvcRc    = &pEncCtx->pWelsSvcRc[pEncCtx->uiDependencyId];
   const int32_t kiSliceNum  = pEncCtx->pCurDqLayer->iMaxSliceNum;
   pWelsSvcRc->iBitsPerMb    = WELS_DIV_ROUND (static_cast<int64_t> (pWelsSvcRc->iTargetBits) * INT_MULTIPLY,
-                                              pWelsSvcRc->iNumberMbFrame);
+                              pWelsSvcRc->iNumberMbFrame);
   pWelsSvcRc->bGomRC        = (RC_OFF_MODE == pEncCtx->pSvcParam->iRCMode ||
-                              RC_BUFFERBASED_MODE == pEncCtx->pSvcParam->iRCMode) ? false : true;
+                               RC_BUFFERBASED_MODE == pEncCtx->pSvcParam->iRCMode) ? false : true;
   for (int32_t i = 0; i < kiSliceNum; i++) {
-      SRCSlicing* pSOverRc        = &ppSliceInLayer[i]->sSlicingOverRc;
-      pSOverRc->iTotalQpSlice     = 0;
-      pSOverRc->iTotalMbSlice     = 0;
-      pSOverRc->iFrameBitsSlice   = 0;
-      pSOverRc->iGomBitsSlice     = 0;
-      pSOverRc->iStartMbSlice     = 0;
-      pSOverRc->iEndMbSlice       = 0;
-      pSOverRc->iTargetBitsSlice  = 0;
+    SRCSlicing* pSOverRc        = &ppSliceInLayer[i]->sSlicingOverRc;
+    pSOverRc->iTotalQpSlice     = 0;
+    pSOverRc->iTotalMbSlice     = 0;
+    pSOverRc->iFrameBitsSlice   = 0;
+    pSOverRc->iGomBitsSlice     = 0;
+    pSOverRc->iStartMbSlice     = 0;
+    pSOverRc->iEndMbSlice       = 0;
+    pSOverRc->iTargetBitsSlice  = 0;
   }
 }
 
@@ -1155,7 +1158,7 @@
   }
   //turn off GOM QP when slicenum is larger 1
   if ((kiSliceNum > 1) || ((pEncCtx->pSvcParam->iRCMode == RC_BITRATE_MODE)
-                                      && (pEncCtx->eSliceType == I_SLICE))) {
+                           && (pEncCtx->eSliceType == I_SLICE))) {
     pWelsSvcRc->bEnableGomQp = false;
   } else
     pWelsSvcRc->bEnableGomQp = true;
--- a/test/api/encoder_test.cpp
+++ b/test/api/encoder_test.cpp
@@ -143,15 +143,15 @@
   // the following values may be adjusted for times since we start tuning the strategy
   {
     "res/CiscoVT2people_320x192_12fps.yuv",
-    {"6d8e11426a64c0ddca28be12726516490b6b7878"}, SCREEN_CONTENT_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
+    {"ae0351f4a664a265504dc46a73b88a0031c31cf2"}, SCREEN_CONTENT_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
   },
   {
     "res/CiscoVT2people_160x96_6fps.yuv",
-    {"ad49e45b15077a41d7e5a2eb59bdc0adea804984"}, SCREEN_CONTENT_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
+    {"3d2b20620721a6c4a303d386258ad89d174deb60"}, SCREEN_CONTENT_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
   },
   {
     "res/Static_152_100.yuv",
-    {"e729e13edc37f1ea14780f2e84d9d23506383d56"}, SCREEN_CONTENT_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
+    {"d469c43ff9d7eab47a6d865c1739039e35cf1f2a"}, SCREEN_CONTENT_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
   },
   {
     "res/Cisco_Absolute_Power_1280x720_30fps.yuv",
--- a/test/encoder_binary_comparison/SHA1Table/Adobe_PDF_sample_a_1024x768_50Frms.264_AllCases_SHA1_Table.csv
+++ b/test/encoder_binary_comparison/SHA1Table/Adobe_PDF_sample_a_1024x768_50Frms.264_AllCases_SHA1_Table.csv
@@ -431,22 +431,22 @@
 0e34f5319dce675aebd8d6f9a313028a8185225a, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 1, 0
 bef5f14acff59f3f60671f36af33815335215792, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 0, 0
 0e34f5319dce675aebd8d6f9a313028a8185225a, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 1, 0
-c804e0188162aef73b09b41f3af29eba6debc37f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
-a94269d1f7acf976ac7dd600105a6986ba8e422b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
-c804e0188162aef73b09b41f3af29eba6debc37f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
-a94269d1f7acf976ac7dd600105a6986ba8e422b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
-c804e0188162aef73b09b41f3af29eba6debc37f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
-a94269d1f7acf976ac7dd600105a6986ba8e422b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
-c804e0188162aef73b09b41f3af29eba6debc37f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
-a94269d1f7acf976ac7dd600105a6986ba8e422b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
-c804e0188162aef73b09b41f3af29eba6debc37f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
-a94269d1f7acf976ac7dd600105a6986ba8e422b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
-c804e0188162aef73b09b41f3af29eba6debc37f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
-a94269d1f7acf976ac7dd600105a6986ba8e422b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
-c804e0188162aef73b09b41f3af29eba6debc37f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
-a94269d1f7acf976ac7dd600105a6986ba8e422b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
-c804e0188162aef73b09b41f3af29eba6debc37f, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
-a94269d1f7acf976ac7dd600105a6986ba8e422b, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
+17872f8a419cafce719a9dbc9d1ffdab72929e60, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
+6d940632392094d42d80ce6d5db863f94fae2acf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
+17872f8a419cafce719a9dbc9d1ffdab72929e60, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
+6d940632392094d42d80ce6d5db863f94fae2acf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
+17872f8a419cafce719a9dbc9d1ffdab72929e60, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
+6d940632392094d42d80ce6d5db863f94fae2acf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
+17872f8a419cafce719a9dbc9d1ffdab72929e60, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
+6d940632392094d42d80ce6d5db863f94fae2acf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
+17872f8a419cafce719a9dbc9d1ffdab72929e60, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
+6d940632392094d42d80ce6d5db863f94fae2acf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
+17872f8a419cafce719a9dbc9d1ffdab72929e60, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
+6d940632392094d42d80ce6d5db863f94fae2acf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
+17872f8a419cafce719a9dbc9d1ffdab72929e60, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
+6d940632392094d42d80ce6d5db863f94fae2acf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
+17872f8a419cafce719a9dbc9d1ffdab72929e60, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
+6d940632392094d42d80ce6d5db863f94fae2acf, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
 2bfbf5f517513fe7710e6f663486b190c592d7ed, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
 2bfbf5f517513fe7710e6f663486b190c592d7ed, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
 2bfbf5f517513fe7710e6f663486b190c592d7ed, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 1, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
@@ -1007,22 +1007,22 @@
 990bdd0a4a72fa0e270c15e767d8ba799772d946, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 0, 1, 0
 09d194ba2967106ce04b7a81f33592383cba3cd3, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 0, 0
 990bdd0a4a72fa0e270c15e767d8ba799772d946, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 2400.00,2400.00,0,0,0,2400.00,0,0,0, 3, 0, 3, 0, 3, 0, 3, 0, 1500, 0, 1, 0, 1, 1, 1, 1, 1, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
-09ca1ebb65d12e83a1ec4cfa9bae42fd7ae94cb5, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0
+c160abf7f7cae2e709dca3e5c1da2326a6eab461, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0
 8683d1c8cce0895604f2e96b346f3899337cd7fe, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0
 8683d1c8cce0895604f2e96b346f3899337cd7fe, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0
 8683d1c8cce0895604f2e96b346f3899337cd7fe, 9aa9a4d9598eb3e1093311826844f37c43e4c521, 1, 30, 1, 3, 1024, 768, 1024,768,0,0,0,0,0,0, 30, 30,30,30, 26, 26, 26, 26, 3, 1, 450.00,450.00,0,0,0,450.00,0,0,0, 1,4, 1,1, 1,1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0