Ë
    âQ(h,  ã                   óT   — d dl mZ d dlZd dlmc mc mZ d dl	m
Z d dlmZ d„ Zd„ Zy)é    )ÚwarnN)Ú_highs_options)ÚOptimizeWarningc
                 óÎ  — | j                   }
|j                   }|duxr t        j                  |«      dkD  }dddœ}t        j                  «       }|
|_        ||_        |
|j                  _        ||j                  _        t        j                  j                  |j                  _
        | |_        ||_        ||_        ||_        ||_        ||j                  _        ||j                  _        ||j                  _        |j                   dkD  r(|D �cg c]  }t        j&                  |«      ‘Œ c}|_        t        j*                  «       }t        j,                  «       }t/        j0                  «       }|	j3                  «       D �]
  \  }}|�|dv rŒ|j5                  |«      }d|k(  r!t7        dt9        ||i«      › �t:        d¬«       ŒE|d	v r1t=        |t>        «      r|rd
nd}nt7        d|› d|› d�t:        d¬«       Œzt        j@                  |«      }tC        |||«      \  }}|t        j@                  jD                  k(  r*t=        |t>        «      st7        d|› d|› d�t:        d¬«       Œæ|dk7  rt7        |t:        d¬«       ŒþtG        |||«       �Œ |jI                  |«      }|t        jJ                  jL                  k(  rA|jO                  |jQ                  «       |jS                  |jQ                  «       «      dœ«       |S |jU                  |«      }|t        jJ                  jL                  k(  r?t        jV                  jX                  }|jO                  ||jS                  |«      dœ«       |S |j[                  «       }|t        jJ                  jL                  k(  rA|jO                  |jQ                  «       |jS                  |jQ                  «       «      dœ«       |S |jQ                  «       }|j]                  «       }|t        jV                  j^                  t        jV                  j`                  t        jV                  jb                  t        jV                  jd                  fvxsn |t        jV                  j`                  t        jV                  jb                  t        jV                  jd                  hv xr |jf                  t        jh                  k(  }|t        jV                  j^                  k7  }|r|s|sg|re|jO                  |d|jS                  |«      › d|jk                  |jl                  «      › �|jn                  |jp                  |jr                  dœ«       |S |ju                  «       } |jw                  «       }!t        jx                  d|
f«      }"|!jz                  }#| j|                  }$t        |
«      D ]X  }%|#|%   t        j€                  j‚                  k(  r|$|%   |"d|%f<   Œ.|#|%   t        j€                  j„                  k(  sŒO|$|%   |"d|%f<   ŒZ |jO                  ||jS                  |«      t        j†                  | jˆ                  «      || jŠ                  z
  t        j†                  | jŒ                  «      |"|jf                  |jn                  |jp                  |jr                  dœ
«       |r3|jO                  |jŽ                  |j�                  |j’                  dœ«       |S c c}w )aÔ
  Solve linear programs using HiGHS [1]_.

    Assume problems of the form:

        MIN c.T @ x
        s.t. lhs <= A @ x <= rhs
             lb <= x <= ub

    Parameters
    ----------
    c : 1-D array, (n,)
        Array of objective value coefficients.
    astart : 1-D array
        CSC format index array.
    aindex : 1-D array
        CSC format index array.
    avalue : 1-D array
        Data array of the matrix.
    lhs : 1-D array (or None), (m,)
        Array of left hand side values of the inequality constraints.
        If ``lhs=None``, then an array of ``-inf`` is assumed.
    rhs : 1-D array, (m,)
        Array of right hand side values of the inequality constraints.
    lb : 1-D array (or None), (n,)
        Lower bounds on solution variables x.  If ``lb=None``, then an
        array of all `0` is assumed.
    ub : 1-D array (or None), (n,)
        Upper bounds on solution variables x.  If ``ub=None``, then an
        array of ``inf`` is assumed.
    options : dict
        A dictionary of solver options

    Returns
    -------
    res : dict

        If model_status is one of kOptimal,
        kObjectiveBound, kTimeLimit,
        kIterationLimit:

            - ``status`` : HighsModelStatus
                Model status code.

            - ``message`` : str
                Message corresponding to model status code.

            - ``x`` : list
                Solution variables.

            - ``slack`` : list
                Slack variables.

            - ``lambda`` : list
                Lagrange multipliers associated with the constraints
                Ax = b.

            - ``s`` : list
                Lagrange multipliers associated with the constraints
                x >= 0.

            - ``fun``
                Final objective value.

            - ``simplex_nit`` : int
                Number of iterations accomplished by the simplex
                solver.

            - ``ipm_nit`` : int
                Number of iterations accomplished by the interior-
                point solver.

        If model_status is not one of the above:

            - ``status`` : HighsModelStatus
                Model status code.

            - ``message`` : str
                Message corresponding to model status code.

    Notes
    -----
    If ``options['write_solution_to_file']`` is ``True`` but
    ``options['solution_file']`` is unset or ``''``, then the solution
    will be printed to ``stdout``.

    If any iteration limit is reached, no solution will be
    available.

    ``OptimizeWarning`` will be raised if any option value set by
    the user is found to be incorrect.

    References
    ----------
    .. [1] https://highs.dev/
    .. [2] https://www.maths.ed.ac.uk/hall/HiGHS/HighsOptions.html
    Nr   )ÚxÚfun)ÚsenseéÿÿÿÿzUnrecognized options detected: é   )Ú
stacklevel)ÚpresolveÚparallelÚonÚoffz	Option f"z" is "z4", but only True or False is allowed. Using default.)ÚstatusÚmessagezmodel_status is z; primal_status is )r   r   Úsimplex_nitÚipm_nitÚcrossover_nité   )
r   r   r   ÚslackÚlambdaÚ	marg_bndsr   r   r   r   )Úmip_node_countÚmip_dual_boundÚmip_gap)JÚsizeÚnpÚsumÚ_hÚHighsLpÚnum_col_Únum_row_Ú	a_matrix_ÚMatrixFormatÚkColwiseÚformat_Ú	col_cost_Ú
col_lower_Ú
col_upper_Ú
row_lower_Ú
row_upper_Ústart_Úindex_Úvalue_ÚHighsVarTypeÚintegrality_Ú_HighsÚHighsOptionsÚhoptÚHighsOptionsManagerÚitemsÚget_option_typer   Údictr   Ú
isinstanceÚboolÚHighsOptionTypeÚcheck_optionÚkBoolÚsetattrÚpassOptionsÚHighsStatusÚkErrorÚupdateÚgetModelStatusÚmodelStatusToStringÚ	passModelÚHighsModelStatusÚkModelErrorÚrunÚgetInfoÚkOptimalÚ
kTimeLimitÚkIterationLimitÚkSolutionLimitÚobjective_function_valueÚ	kHighsInfÚsolutionStatusToStringÚprimal_solution_statusÚsimplex_iteration_countÚipm_iteration_countÚcrossover_iteration_countÚgetSolutionÚgetBasisÚzerosÚ
col_statusÚcol_dualÚrangeÚHighsBasisStatusÚkLowerÚkUpperÚarrayÚ	col_valueÚ	row_valueÚrow_dualr   r   r   )&ÚcÚindptrÚindicesÚdataÚlhsÚrhsÚlbÚubÚintegralityÚoptionsÚnumcolÚnumrowÚisMipÚresÚlpÚiÚhighsÚhighs_optionsÚhoptmanagerÚkeyÚvalÚopt_typer   ÚmsgÚ
opt_statusÚinit_statusÚerr_model_statusÚ
run_statusÚmodel_statusÚinfoÚmipFailConditionÚlpFailConditionÚsolutionÚbasisr   Úbasis_col_statusÚsolution_col_dualÚiis&                                         úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/_highspy/_highs_wrapper.pyÚ_highs_wrapperr‡   	   s9  € ðB �V‰V€FØ�X‰X€FØ˜tÐ#Ò?¬¯©¨{Ó(;¸aÑ(?€Eð Øñ€Cô 
�‰‹€BØ€B„KØ€B„KØ"€B‡L�LÔØ"€B‡L�LÔÜŸ?™?×3Ñ3€B‡L�LÔØ€B„LØ€B„MØ€B„MØ€B„MØ€B„MØ €B‡L�LÔØ!€B‡L�LÔØ€B‡L�LÔØ×Ñ˜!ÒØ7BÖC°!œ2Ÿ?™?¨1Õ-ÒCˆŒô �I‰I‹K€EÜ—O‘OÓ%€MÜ×*Ñ*Ó,€KØ—M‘M“Oó +1‰ˆˆSàˆ;˜# Ñ+Øð ×.Ñ.¨sÓ3ˆØ�Š>ÜØ1´$¸¸S°zÓ2BÐ1CÐDÜØõð
 àÐ.Ñ.ä˜c¤4Ô(Ù"%™$¨5‘CäØ# C 5¨¨s¨eð 42ð 3ä'Ø#$õ	ð Ü×)Ñ)¨(Ó3ˆHÜ& u¨c°3Ó7‰KˆF�CØœ2×-Ñ-×3Ñ3Ò3Ü! #¤tÔ,ÜØ# C 5¨¨s¨eð 42ð 3ä'Ø#$õ	ð ð ˜Š{Ü�Sœ/°aÖ8ä˜ s¨CÖ0ðW+1ðZ ×"Ñ" =Ó1€JØ”R—^‘^×*Ñ*Ò*Ø�
‰
à×.Ñ.Ó0Ø ×4Ñ4°U×5IÑ5IÓ5KÓLñô	
ð ˆ
à—/‘/ "Ó%€KØ”b—n‘n×+Ñ+Ò+ä×.Ñ.×:Ñ:ÐØ�
‰
à*Ø ×4Ñ4Ð5EÓFñô	
ð ˆ
ð —‘“€JØ”R—^‘^×*Ñ*Ò*Ø�
‰
à×.Ñ.Ó0Ø ×4Ñ4°U×5IÑ5IÓ5KÓLñô	
ð ˆ
ð ×'Ñ'Ó)€Lð �=‰=‹?€Dð $Ü
×Ñ×$Ñ$Ü
×Ñ×&Ñ&Ü
×Ñ×+Ñ+Ü
×Ñ×*Ñ*ð	,ð ò ð 	ä×Ñ×*Ñ*Ü×Ñ×/Ñ/Ü×Ñ×.Ñ.ð
ð	
ò 	<ð ×*Ñ*¬b¯l©lÑ:ð ð #¤b×&9Ñ&9×&BÑ&BÑB€OÙÑ"©E±oØ�
‰
à&Ø-Ø×,Ñ,¨\Ó:Ð;ð <$à×/Ñ/°×0KÑ0KÓLÐMðOð  $×;Ñ;Ø×3Ñ3Ø!%×!?Ñ!?ñ	ô	
ð ˆ
ð × Ñ Ó"€HØ�N‰NÓ€Eô —‘˜!˜V˜Ó%€IØ×'Ñ'ÐØ ×)Ñ)ÐÜ�F‹mò 5ˆØ˜BÑ¤2×#6Ñ#6×#=Ñ#=Ò=Ø0°Ñ4ˆI�a˜�eÒØ˜bÑ!¤R×%8Ñ%8×%?Ñ%?Ó?Ø0°Ñ4ˆI�a˜�eÒð	5ð ‡J�Jà"Ø×0Ñ0°Ó>ä—‘˜(×,Ñ,Ó-ð ˜8×-Ñ-Ñ-ä—h‘h˜x×0Ñ0Ó1Ø"Ø×0Ñ0Ø×7Ñ7Ø×/Ñ/Ø!×;Ñ;ñ	
ôñ& Ø�
‰
à"&×"5Ñ"5Ø"&×"5Ñ"5ØŸ<™<ñô	
ð €JùòW Ds   Ä["c                 ó´  — | j                  |«      \  }}t        j                  «       }|t        j                  j
                  k7  ryt        j                  j                  t        t        j                  j                  t        t        j                  j                  t        t        j                  j                  t        i}|j                  |d «      }|t        u r|j!                  ||«      sy|t        u r|j#                  ||«      sy|t        u r|j%                  ||«      sy|€y| j'                  |«      \  }}|t        j                  j
                  k7  ryy)N)r
   zInvalid option name.)r
   zInvalid option value.)é   zUnknown option type.)é   z Failed to validate option value.)r   zCheck option succeeded.)ÚgetOptionTyper4   r5   r    r@   ÚkOkr;   r=   r:   ÚkIntÚintÚkDoubleÚfloatÚkStringÚstrÚgetÚcheck_string_optionÚcheck_double_optionÚcheck_int_optionÚgetOptionValue)	Ú
highs_instÚoptionÚvaluer   Úoption_typert   Úvalid_typesÚexpected_typeÚcurrent_values	            r†   r<   r<   2  s   € Ø$×2Ñ2°6Ó:Ñ€FˆKÜ×*Ñ*Ó,€Kà”—‘×#Ñ#Ò#Ø)ô 	×Ñ× Ñ ¤$Ü
×Ñ×Ñ¤Ü
×Ñ×"Ñ"¤EÜ
×Ñ×"Ñ"¤Cð	€Kð  —O‘O K°Ó6€MàœÑØ×.Ñ.¨v°uÔ=Ø.ØœÑØ×.Ñ.¨v°uÔ=Ø.ØœÑØ×+Ñ+¨F°EÔ:Ø.àÐØ(à&×5Ñ5°fÓ=Ñ€FˆMØ”—‘×#Ñ#Ò#Ø4Ø'ó    )Úwarningsr   Únumpyr   Úscipy.optimize._highspy._coreÚoptimizeÚ_highspyÚ_corer    Úscipy.optimize._highspyr   r4   Úscipy.optimizer   r‡   r<   © rŸ   r†   ú<module>r©      s#   ðÝ ã ß *Ó *Ý :Ý *òfóR	 (rŸ   